js无法获得相应元素的值

我通过js代码对input标签的内容进行取值,可是js就是报错说变量未定义,我检查了好几遍都没检查出到底哪里错了,求指导。
图片描述

代码如下

      <td width="72"></td>
        <td width="72">确认密码</td>
        <td width="272"><label>
            <input name="new_pwd_again" type="password"
                   onkeyup="validate()"
                   placeholder=" * 为必填项"
                   required
                   value="dsf"
            />
            <font name="tishi">das</font>

        </label></td>
        
       

js中:


function validate() {


    var pwd=document.getElementsByName("new_pwd_again").value;
阅读 2.8k
3 个回答

你需要多多学习一下document.getElementsByName("new_pwd_again")获得的是多个哦 应该是
var pwd=document.getElementsByName("new_pwd_again")[0].value;

目的:getElementsByName()、getElementsById()、getElementsByTagsName()返回值的类型测验
使用测试函数: Object.prototype.toString.call(obj)

<input name="new_pwd_again" 
       id="new_pwd_again"
       type="password"
       onkeyup="validate()"
       placeholder=" * 为必填项"
       required
       value="dsf"
/>
var name=document.getElementsByName("new_pwd_again");
var id=document.getElementById('new_pwd_again');
var tagName=document.getElementsByTagName('input');
console.log(Object.prototype.toString.call(name));     //[object NodeList]
console.log(Object.prototype.toString.call(id));       //[object HTMLInputElement]
console.log(Object.prototype.toString.call(tagName));  //[object HTMLCollection]

结果分析:
NodeList: http://www.w3school.com.cn/xm...
HTMLElement: http://www.w3school.com.cn/xm...
HTMLCollection: http://www.w3school.com.cn/xm...

结论:

document.getElementsByName("new_pwd_again")[0].value;   //dsf
document.getElementById('new_pwd_again').value;         //dsf
document.getElementsByTagName('input')[0].value         //dsf

document.getElementsByName("new_pwd_again")获取到的是数组类型,需要arr[key]形式读取,
而id是唯一的,所有document.getElementById('new_pwd_again')肯定只有一个,但前者不是,有时候会有多个。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题