我有一个jquery函数控制表单的所有必填字段都被填充,如果其中一个必填字段为空,则取消提交。
取消表单提交工作正常,问题是当我在提交失败后提交表单时仍然取消表单提交,当它应该允许提交因为所有表单都填写正确,这里是代码:
-Cancel是一个bool,表示是否填写了所有表单字段。
if (cancel)
{
$('#form_login').submit(function ()
{
return false;
});
}
else
{
$('#form_login').submit(function ()
{
return true;
});
};
我做错了什么?
感谢
答案 0 :(得分:1)
您最好在submit方法中调用验证代码。例如,执行某些验证并返回true或false的方法。您可以将该值作为提交方法返回值返回。
例如:
$('#form_login').submit(function ()
{
return isMyFormValid();
});
function isMyFormValid(){
//return true or false depending on some conditions.
}
答案 1 :(得分:0)
if(cancel) {
$('#form_login').submit();
} else {
return false;
}
答案 2 :(得分:0)
问题是您多次将函数附加到表单的提交事件。第一次,当验证失败时,附加return false;
方法,然后每次提交表单时调用此函数,即使您稍后附加另一个函数(验证成功时)。
您想要做的是:
$('#form_login').submit(function() {
//define the value of 'cancel' here
return cancel;
}
如果您已将某个函数附加到提交事件并想要覆盖它,则必须先删除已附加的函数:
$('#form_login').off('submit');
然后附加新功能。
答案 3 :(得分:0)
如何尝试api建议:
$('#form_login').submit(function ()
{
if (cancel) {return false;}
return true;
});