JavaScript obtient un élément par nom

Considérez cette fonction:

function validate() { var acc = document.getElementsByName('acc').value; var pass = document.getElementsByName('pass').value; alert (acc); } 

Et cette partie HTML:

 <table border="0" cellpadding="2" cellspacing="0" valign="top"> <tr> <td class="td1">Account</td> <td class="td2"><input type="text" name="acc" /></td> </tr> <tr class="td1"> <td>Password</td> <td class="td2"><input type="password" name="pass" /></td> </tr> </table> <div><button onClick="validate()" class="cupid-greenx">Login now</button></div> 

La boîte d'alerte s'affiche, mais elle montre "indéfini".

document.getElementsByName renvoie une liste de nœuds d'éléments de sorte qu'il n'a pas de propriété .value . D'où l'erreur non définie que vous voyez.

Ce que vous voulez, c'est document.getElementsByName("acc")[0].value

Notez le pluriel dans cette méthode:

 document.getElementsByName() 

Cela renvoie un ensemble d'éléments, alors utilisez [0] pour obtenir la première occurrence, par exemple

 document.getElementsByName()[0] 

Tu veux ça:

 function validate() { var acc = document.getElementsByName('acc')[0].value; var pass = document.getElementsByName('pass')[0].value; alert (acc); } 
 document.getElementsByName("myInput")[0].value; 

Method document.getElementsByName renvoie un ensemble d'éléments. Vous devez d'abord sélectionner, par exemple.

 document.getElementsByName('acc')[0].value