JavaScript通过名称获取元素

考虑这个function:

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> 

警告框正在显示,但显示“未定义”。

document.getElementsByName返回元素的NodeList,所以它没有属性.value 。 因此你看到的未定义的错误。

你想要的是document.getElementsByName("acc")[0].value

注意这个方法中的复数:

 document.getElementsByName() 

这返回一个元素数组,所以使用[0]来获得第一个发生,例如

 document.getElementsByName()[0] 

你要这个:

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

方法document.getElementsByName返回一个元素数组。 例如,您应该先select。

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