我有一个函数调用,我想传递参数btnSubmit:
$(btnSubmit).click( validate(btnSubmit, event) );
我想首先阻止表单提交然后验证。但是,无论如何它都提交了。如果我不通过btnSubmit,它可以工作,但我想这样做。
function validate (btnSubmit, event) {
event.preventDefault();
}
答案 0 :(得分:0)
当你做的时候:
$(btnSubmit).click( validate(btnSubmit, event) );
您立即调用validate
函数,并将其返回值作为$(btnSubmit).click()
的回调传递。由于该函数不返回任何内容,因此实际上没有创建事件处理程序。
您有两种可能的解决方法:
如斜视所示,请将validate
函数更改为使用this
而不是btnSubmit
,并将event
作为第一个参数:
function validate (event) {
event.preventDefault();
}
然后分配事件处理程序:
$(btnSubmit).click(validate);
使用将btnSubmit
和event
传递给validate
的匿名函数:
$(btnSubmit).click(function(event) {
validate(btnSubmit, event)
});