javascript - jquery post 仅在警报后有效

标签 javascript jquery ajax forms submit

我有一次提交两个表单的功能。最后(第二个)post 方法在没有 alert() 的情况下不会生效。

你能告诉我我的错误吗。

  function formFunction() {
        ...
        $.post($("#form1").attr("action"), $("#form1").serialize() );
        $.post($("#form2").attr("action"), $("#form2").serialize() );

        //alert('done');
}

更新

函数是这样调用的

<form id="form0" name="form0" onsubmit="formFunction()">
    <input id="mainFormValue" type="text">

最佳答案

失败的原因是您没有取消原始表单提交。这意味着当您单击该按钮时,页面正在回发到服务器。您需要做的是阻止原始表单提交完成。

如果您使用 jQuery 添加事件处理程序,则可以使用 preventDefault() 取消表单提交。

function formFunction(e) {
     e.preventDefault();
     $.post($("#form1").attr("action"), $("#form1").serialize() );
     $.post($("#form2").attr("action"), $("#form2").serialize() );
}

将表单提交更改为不显眼的 JavaScript,以获取由 jQuery 设置的正确事件对象。

$("#form0").submit(formFunction);

其他解决方案是在提交中添加一个return false。只需忽略我上面建议的 preventDefault 行。 [坏主意,但会奏效]

<form id="form0" name="form0" onsubmit="formFunction(); return false">

关于javascript - jquery post 仅在警报后有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13259668/

相关文章:

javascript - 使用 Ajax 从不同列表中选择值后填充下拉列表

php - Jquery 表单插件

javascript - jquery 对话框位置不起作用

javascript - Angular 应用程序中 Javascript 中的方法链

javascript - 向表单添加多个字段

javascript - 如何使图像 map 响应?

javascript - XMLHttpRequest 中哪些字符是安全的?

javascript - jQuery:查找包含特定文本的元素

javascript - 按键问题(查询后不完整)

javascript - 使用 Javascript 检查文件夹中是否存在文件