jquery允许取消提交后提交表单
Posted
技术标签:
【中文标题】jquery允许取消提交后提交表单【英文标题】:jquery allow form submission after cancelled submission 【发布时间】:2012-06-11 10:56:37 【问题描述】:我有一个 jquery 函数,它控制表单的所有必填字段都已填写,如果其中一个必填字段为空,它将取消提交。
取消表单提交工作正常,问题是当我在提交失败后提交表单时它仍然取消表单提交,当它应该允许提交因为所有表单都正确填写时,这里是代码:
-Cancel 是一个布尔值,指示是否所有表单字段都已填写。
if (cancel)
$('#form_login').submit(function ()
return false;
);
else
$('#form_login').submit(function ()
return true;
);
;
我做错了什么??
谢谢
【问题讨论】:
【参考方案1】:您最好从提交方法中调用您的验证代码。例如,一个执行一些验证并返回 true 或 false 的方法。您可以将该值作为提交方法返回值返回。
例如:
$('#form_login').submit(function ()
return isMyFormValid();
);
function isMyFormValid()
//return true or false depending on some conditions.
【讨论】:
@AlbertPrats:很好,没问题!【参考方案2】:if(cancel)
$('#form_login').submit();
else
return false;
【讨论】:
【参考方案3】:问题是您多次将函数附加到表单的提交事件。第一次,当验证失败时,附加return false;
方法,然后每次提交表单时都会调用此函数,即使您稍后附加另一个函数(当验证成功时)。
你想做的是:
$('#form_login').submit(function()
//define the value of 'cancel' here
return cancel;
如果你已经在提交事件中附加了一个函数并且想要覆盖它,你必须先移除已经附加的函数:
$('#form_login').off('submit');
然后附加新函数。
【讨论】:
【参考方案4】:试试api 的建议怎么样:
$('#form_login').submit(function ()
if (cancel) return false;
return true;
);
【讨论】:
以上是关于jquery允许取消提交后提交表单的主要内容,如果未能解决你的问题,请参考以下文章