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

时间:2012-06-11 10:56:38

标签: jquery forms submission

我有一个jquery函数控制表单的所有必填字段都被填充,如果其中一个必填字段为空,则取消提交。

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

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

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

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

我做错了什么?

感谢

4 个答案:

答案 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;    
});