Considérons 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 est affichée, mais elle indique "non défini".
document.getElementsByName
renvoie une liste d'éléments (NodeList), qui n'a donc pas la 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 retourne un tableau d'éléments, utilisez donc [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);
}
La méthode document.getElementsByName renvoie un tableau d'éléments. Vous devez sélectionner en premier, par exemple.
document.getElementsByName('acc')[0].value
document.getElementsByName("myInput")[0].value;