
6个回答
展开全部
题目与问题内容,有一些差异。
document.getElementById("password").onblur = checkPassword;
上面的这句话的意思是,给password这个元素的onblur事件,添加一个函数,鼠标在离开元素时就会调用执行checkPassword函数。一般来说,验证密码规则函数的调用,都是用这种方法,就是说用户在输入完密码之后,才会去校验密码格式是否有问题。而你后面的写法:
document.getElementById("password").onblur = checkPassword()
这句话是说,给元素的onblur事件添加一个函数,如果你的checkPasswrod返回的是一个函数对象,则会添加成功,否则只会先运行一遍checkPassword函数,给你的password元素的值进行一遍校验,因为此时password值为空,所以校验结果是不符合,就会在passwrod后面出现提示,但是鼠标移入password再移出,并不会触发校验函数,并不符合实际的校验场景。
综上,在代码中出现函数体时,一般用法就是给某个事件绑定某个函数,比如你的第一种写法,只有在真正触发的这个事件时,函数才会运行;在代码中出现函数体后面加(),就是要运行该函数,至于函数运行之后会发生什么,情况就太复杂了。
document.getElementById("password").onblur = checkPassword;
上面的这句话的意思是,给password这个元素的onblur事件,添加一个函数,鼠标在离开元素时就会调用执行checkPassword函数。一般来说,验证密码规则函数的调用,都是用这种方法,就是说用户在输入完密码之后,才会去校验密码格式是否有问题。而你后面的写法:
document.getElementById("password").onblur = checkPassword()
这句话是说,给元素的onblur事件添加一个函数,如果你的checkPasswrod返回的是一个函数对象,则会添加成功,否则只会先运行一遍checkPassword函数,给你的password元素的值进行一遍校验,因为此时password值为空,所以校验结果是不符合,就会在passwrod后面出现提示,但是鼠标移入password再移出,并不会触发校验函数,并不符合实际的校验场景。
综上,在代码中出现函数体时,一般用法就是给某个事件绑定某个函数,比如你的第一种写法,只有在真正触发的这个事件时,函数才会运行;在代码中出现函数体后面加(),就是要运行该函数,至于函数运行之后会发生什么,情况就太复杂了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询