0

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

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

-Cancel 是一个布尔值,指示是否填写了所有表单字段。

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

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

我究竟做错了什么 ??

谢谢

4

4 回答 4

1

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

例如:

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

function isMyFormValid(){
  //return true or false depending on some conditions.
}
于 2012-06-11T11:00:28.757 回答
0

问题是您多次将函数附加到表单的提交事件。第一次,当验证失败时,return false;附加该方法,然后每次提交表单时都会调用此函数,即使您稍后附加另一个函数(当验证成功时)。

你想做的是:

$('#form_login').submit(function() {
    //define the value of 'cancel' here
    return cancel;
}

如果您已经将函数附加到提交事件并想要覆盖它,则必须首先删除已附加的函数:

$('#form_login').off('submit');

然后附加新功能。

于 2012-06-11T11:13:26.353 回答
0

试试api的建议怎么样:

$('#form_login').submit(function () 
{ 
        if (cancel) {return false;} 
        return true;    
}); 
于 2012-06-11T11:23:21.197 回答
0
if(cancel) {
   $('#form_login').submit();
} else {
  return false;
}
于 2012-06-11T11:04:41.437 回答