阻止一个表单提交,然后提交另一个表单 - 这种方法可靠吗?
在一个表单的提交事件处理程序中提交另一个表单并返回 false 以阻止第一个表单的提交是否安全?
$("#form1").submit(function() {
$("#form2").submit();
return false;
});
我正在使用这种方法,并且它有效(至少在 IE6 中)。但是,我担心这可能不适用于其他浏览器。对 submit
的调用能否以某种方式取消 return false
?
我正在考虑的替代方法是
$("#form1").submit(function() {
setTimeout('$("#form2").submit();', 10);
return false;
});
......但这很可能会增加实际不需要的复杂性。
需要这样做的原因是用户正在提交 form1
,但在某种情况下(我可以使用 JavaScript 检测到)这会导致错误,可以通过设置一些数据来纠正在 form2
的字段之一中,然后提交此表单。
Is it safe to - within a submit event handler for one form - submit another form and return false
to prevent the submission of the first form?
$("#form1").submit(function() {
$("#form2").submit();
return false;
});
I am using this approach, and it works (in IE6 at least). However, I am concerned that this might not work in other browsers. Could the call to submit
cancel out the return false
somehow?
The alternative approach I was considering is
$("#form1").submit(function() {
setTimeout('$("#form2").submit();', 10);
return false;
});
....but this might well be adding complexity where none is actually needed.
The reason for needing to do this is that the user is submitting form1
, but in a certain scenario (which I can detect using JavaScript) this is causing a bug, that can be rectified instead by setting some data in one of form2
's fields and then submitting this form instead.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的代码应该适用于所有浏览器,但如果您想绝对确定可以
使用
.preventDefault()
方法可确保您在执行可能会干扰默认行为的操作之前取消默认行为。Your code should work across all browsers, but if you want to be absolutely sure you could do
Using the
.preventDefault()
method ensures that you cancel the default behavior before doing something that might interfere with it..你原来的方法应该在任何地方都适用。
Your original approach should work everywhere.