封装函数时遇到的问题,希望老师耐心解答。
// 封装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 星