html - JavaScript obtener elemento por nombre
Considera esta función:
function validate()
{
var acc = document.getElementsByName('acc').value;
var pass = document.getElementsByName('pass').value;
alert (acc);
}
Y esta parte de 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>
El cuadro de alerta está mostrando, pero muestra "undefined".
Respuesta #1
La razón por la que estás viendo ese error es porque document.getElementsByName devuelve un NodeList de elementos. Y un NodeList de elementos no tiene una propiedad .value.
Usa esto en su lugar:
document.getElementsByName("acc")[0].value
Respuesta #2
Todas las respuestas aquí parecen estar desactualizadas. Por favor, usa esto ahora:
document.querySelector("[name='acc']");
document.querySelector("[name='pass']")
Respuesta #3
Nota el plural en este método:
document.getElementsByName()
Eso devuelve un arreglo de elementos, así que usa [0] para obtener la primera ocurrencia, por ejemplo.
document.getElementsByName()[0]
Respuesta #4
Tú quieres esto:
function validate() {
var acc = document.getElementsByName('acc')[0].value;
var pass = document.getElementsByName('pass')[0].value;
alert (acc);
}
