封装函数时遇到的问题,希望老师耐心解答。
// 封装getElementById function getId(elem){ if(typeof(elem)==="string") return document.getElementById(elem); } // check函数用于鉴定输入的值是否合法 var pattern=/^[\u4e00-\u9fa5]{2,16}$/; function check(str,pat){ if(pat.test(str)) {return "OK"} else{return "用户名不合法"} } // 将username绑定onblur事件 username.onblur=function(){ getId("check_"+"username").innerHTML=check(getId("username").value,pattern) }
未封装onblur事件时,代码运行正常。
现将username.onblur事件封装入fn函数,代码如下:
//将onblur事件封装成一个函数 function fn(id){ id.onblur=function(){ getId("check_"+"id").innerHTML=check(getId("id").value,pattern) } }; fn(username);
此时代码运行出错,控制台提示 Uncaught TypeError: Cannot read property 'value' of null,希望老师耐心解答,多谢!
19
收起
正在回答
2回答
同学你好, 从你粘贴的这部分代码看,fn函数中id属于变量,不能添加引号, 建议修改:
如果还有问题,建议:可以将你写的完整代码粘贴过来,便于老师帮助同学准确的定位与解决问题。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星