考虑这个功能:
function validate()
{
var acc = document.getElementsByName('acc').value;
var pass = document.getElementsByName('pass').value;
alert (acc);
}
这个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>
警告框正在显示,但显示“未定义”。
答案 0 :(得分:219)
document.getElementsByName
返回元素的NodeList,因此它没有属性.value
。因此你看到了未定义的错误。
你想要的是document.getElementsByName("acc")[0].value
答案 1 :(得分:23)
请注意此方法中的复数:
document.getElementsByName()
返回一个元素数组,因此使用[0]来获得第一个元素,例如
document.getElementsByName()[0]
答案 2 :(得分:9)
你想要这个:
function validate() {
var acc = document.getElementsByName('acc')[0].value;
var pass = document.getElementsByName('pass')[0].value;
alert (acc);
}
答案 3 :(得分:5)
document.getElementsByName("myInput")[0].value;
答案 4 :(得分:5)
方法document.getElementsByName返回元素数组。例如,您应首先选择。
document.getElementsByName('acc')[0].value
答案 5 :(得分:5)
这里的所有答案似乎都过时了。请立即使用:
document.querySelector("[name='acc']");
document.querySelector("[name='pass']")