jquery - 阻止一个表单提交,然后提交另一个表单 - 这种方法可靠吗?

标签 jquery forms submit form-submit

在一个表单的提交事件处理程序中提交另一个表单并返回 false 以阻止提交第一个表单是否安全?

$("#form1").submit(function() {
    $("#form2").submit();
    return false;
});

我正在使用这种方法,并且它有效(至少在 IE6 中)。但是,我担心这可能不适用于其他浏览器。对 submit 的调用能否以某种方式取消 return false

我正在考虑的替代方法是

$("#form1").submit(function() {
    setTimeout('$("#form2").submit();', 10);
    return false;
});

....但这很可能会增加实际不需要的复杂性。

需要这样做的原因是用户正在提交 form1,但在某种情况下(我可以使用 JavaScript 检测到)这会导致错误,可以通过以下方式纠正:在 form2 的字段之一中设置一些数据,然后提交此表单。

最佳答案

您的代码应该适用于所有浏览器,但如果您想绝对确定可以这样做

$("#form1").submit(function(evt) {
    evt.preventDefault(); // cancel the default behavior
    $("#form2").submit();
    return false;
});

使用.preventDefault()方法确保您执行可能干扰默认行为的操作之前取消默认行为。

关于jquery - 阻止一个表单提交,然后提交另一个表单 - 这种方法可靠吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4193612/

相关文章:

javascript - 交换字符出现次数

jquery - Jquery中按Enter键时触发点击事件

javascript - 如何使用 css 按钮调用 jquery 函数?

php - 从 POST 获取动态变量

twitter-bootstrap - 在模态 Bootstrap 中形成

javascript - 停止使用 native javascript 提交表单

javascript - 拖动时出现意外的边距/填充 (jQuery Ui)

c# - C# 中的可滚动表单,AutoScroll=true 不起作用

javascript - 如何将模板中的动态表传递到我的 View 以迭代地将它们保存到我的数据库中

jquery - 使用按钮类型 ="button"提交表单而不是提交