2010-04-19 2 views
1

J'essaie d'obtenir la valeur de 2 zones de texte avec Javascript.Impossible d'obtenir la valeur de 2 zones de texte

Zone de texte 1, rien à redire.

Zone de texte 2, même code, mais rien ne se passe.

Voici le code

var fieldname; 
fieldname = document.getElementById("div"+field).getAttribute("field"); 

alert(fieldname); // RETURNS "Birthdate" 
var textval; 

textval = document.getElementById("textfield"+field).value; 
alert(textval);  // RETURNS NOTHING 

var field est l'id de la zone de texte et div.

Pourquoi cela ne fonctionne-t-il pas?

+2

Une partie essentielle de votre code est manquant - où est le code HTML ??? Pouvez-vous poster cela aussi? – Oded

+1

Pouvez-vous partager votre code HTML? Aussi "problème" n'est pas une très bonne étiquette; Je vais enlever celui-là pour toi. –

+0

Pourtant, nous avons 49 questions avec le tag. – ChaosPandion

Répondre

6

Lors de l'affichage de problèmes html/javascript/css comme celui-ci, isolez le code et placez-le dans un jsfiddle (jsfiddle.net). Non seulement cela permettra aux autres de résoudre votre problème plus rapidement pour vous, mais souvent, l'isolation du code de votre environnement élimine des facteurs supplémentaires qui peuvent avoir causé un comportement inattendu. Souvent, le processus de déplacement d'un extrait vers jsfiddle.net peut montrer le problème avant que quelqu'un d'autre ait besoin de s'impliquer!

Deuxièmement, je recommande de modifier vos pratiques de débogage pour le rendre plus facile sur vous-même que des alertes à l'aide:

  • Lancer un navigateur avec une console js.
  • débogage journal pour CONSOLE.LOG()
  • Afin d'assurer degredation gracieux console.log, ajoutez ce code à votre javascript global:

    if (typeof (console) == 'undefined') {console = {log: function() {}}; }

  • Exécutez js dans la console pour vérifier les valeurs où quelque chose ne va pas dans le code statique, par ex.

    • course document.getElementById("textfield"+field).value pour vérifier si la valeur que vous attendez est disponible, puis redescendez la ligne si vous ne trouvez pas ce que vous attendez, par exemple si .value n'est pas disponible, exécutez document.getElementById("textfield"+field) et d'élargir l'objet pour afficher son contenu, etc.
  • Vous pouvez également exécuter un javascript arbitraire de votre choix dans la console, avec un accès cliquable aux objets javascript disponibles créés par le chargement de la page. Cela réduit également le besoin de coder manuellement dans les alertes.
+0

Sérieusement, les jours où 'alert' était votre seule option sont loin derrière nous! – ChaosPandion

+0

je vais envoyer le code HTML – Alpjef

0
<div id="div<?php echo $aantal;?>" field="<?php echo $rows['field'];?>"> 
          <h3><?php echo $rows['name'];?>:</h3> 
          <p id="p<?php echo $aantal;?>"> 
           <input type="text" id="textfield<?php echo $aantal;?>" value="<?php echo $rows['default'];?>" MAXLENGTH="<?php echo $rows['length'];?>"/><br/> 
           <input type="button" id="buttonacc<?php echo $aantal;?>" value="Verzend" onClick="acc('<?php echo $aantal;?>');"/> 
           <input type="button" id="buttonden<?php echo $aantal;?>" value="Nu niet!" onClick="den('<?php echo $aantal;?>');"/> 
          </p> 
</div> 

C'est le HTML

0
javascript:var val = 1;alert(document.getElementById("textfield"+val).value) 

Quand j'utilise ce code dans le javaconsole de Firefox, rien de mal!

Questions connexes