jquery允许在取消提交后提交表单

jquery允许在取消提交后提交表单,jquery,forms,submission,Jquery,Forms,Submission,我得到了一个jquery函数,它控制填写表单的所有必填字段,如果其中一个必填字段为空,它将取消提交 取消表单提交工作正常,问题是当我在提交失败后提交表单时,它仍然会取消表单提交,因为所有表单都已正确填写,所以它应该允许提交,代码如下: -Cancel是一个bool,指示是否填写了所有表单字段 if (cancel) { $('#form_login').submit(function () { return false

我得到了一个jquery函数,它控制填写表单的所有必填字段,如果其中一个必填字段为空,它将取消提交

取消表单提交工作正常,问题是当我在提交失败后提交表单时,它仍然会取消表单提交,因为所有表单都已正确填写,所以它应该允许提交,代码如下:

-Cancel是一个bool,指示是否填写了所有表单字段

    if (cancel) 
    {
        $('#form_login').submit(function () 
        { 
            return false;   
        }); 
    }
    else
    {

        $('#form_login').submit(function () 
        { 
            return true;
        }); 
    };
我做错了什么


谢谢

您最好在submit方法中调用验证代码。例如,执行一些验证并返回true或false的方法。您可以将该值作为submit方法返回值返回

例如:

$('#form_login').submit(function ()  
{  
   return isMyFormValid();    
});

function isMyFormValid(){
  //return true or false depending on some conditions.
}

问题是您多次将函数附加到表单的提交事件。第一次,当验证失败时,
返回false
您要做的是:

$('#form_login').submit(function() {
    //define the value of 'cancel' here
    return cancel;
}
如果已将某个函数附加到提交事件并希望覆盖它,则必须首先删除已附加的函数:

$('#form_login').off('submit');
然后附加新功能。

试试下面的建议如何:

$('#form_login').submit(function () 
{ 
        if (cancel) {return false;} 
        return true;    
}); 

@阿尔伯特·普拉茨:很好,没问题!
$('#form_login').submit(function () 
{ 
        if (cancel) {return false;} 
        return true;    
});