[英]why validate function invoke after page refresh and nothing happen on click
var asign = function(id){
return document.getElementById(id) ;
} ;
var f_name = asign('fname').value ;
var validate = function (a) {
this.a = a ;
if(!a){
alert("Somthing is require");
} else if(a.length<6){
alert("characters should be minimum 6") ;
}
}
asign('submit').addEventListener('click',validate(f_name),false) ;
validate function invoke in page refresh and after click the button nothing happen validate function nothing happen 验证功能在页面刷新中调用,单击按钮后没有任何反应验证功能没有任何反应
You need pass reference to function as a argument in addEventListener
but not call it, 您需要传递引用以将函数用作addEventListener
的参数,但不能调用它,
1 .you can wrap your code to function like this 1。您可以将代码包装成这样的功能
asign('submit').addEventListener('click', function () {
validate();
}, false);
2 .or use .bind
2。或使用.bind
asign('submit').addEventListener('click', validate.bind({}), false);
Example 例
var asign = function(id) { return document.getElementById(id); }; var validate = function () { var a = asign('fname').value; if (!a) { alert("Somthing is require"); } else if (a.length < 6) { alert("characters should be minimum 6"); } } asign('submit').addEventListener('click', validate.bind({}), false);
<input id="fname"> <button id="submit">submit</button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.