【问题标题】:JQuery $.post() submitting multiple forms instead of just oneJQuery $.post() 提交多个表单而不是一个
【发布时间】:2011-05-12 03:08:31
【问题描述】:

我在一个页面上有多个表单。我有一个按钮(在所有表单之外),我只想提交一个表单,但所有表单数据都是从所有表单提交的。

$("#indiv_save").click( function() {
    alert($("#indiv_form").serialize());  // Shows only correct form
    $.post("/admin/update", $("#indiv_form").serialize(), function(data) {
        notify(data); // quick and easy feedback
    });
});

alert() 调用准确地显示了我想要提交的内容,但随后 Firebug 显示在 .post() 之后从所有表单提交的字段,即使 serialize() 函数是相同的。

所有表单都有不同的名称和元素 ID。

我做错了什么?

【问题讨论】:

  • 你只有一个#indiv_form,对吧?
  • 你的 HTML 是什么样的?
  • 是的,只有一个#indiv_form。 (而要回复另一个答案,表格当然附有自己的<form>标签。

标签: ajax jquery


【解决方案1】:

您正在制作一个 ajax POST 并返回。根据您的按钮,它将尝试提交页面的表单。您需要做的是阻止默认操作:

 $('#indiv_save').click(function(e)
 {
      e.preventDefault();
      // Your Code Here
 });

【讨论】:

  • 我似乎遇到了多个问题,这绝对是其中之一,因为按钮并没有像我预期的那样在所有表单之外。
【解决方案2】:

您的按钮的默认操作可能是“提交表单”,而您并没有阻止它。

从你的点击函数中返回 false 应该这样做。

【讨论】:

    【解决方案3】:

    表单不能包含在一个包罗万象的<form> 标记内,而是必须在单独的<form> 中分开。

    【讨论】:

      猜你喜欢
      • 2013-05-15
      • 1970-01-01
      • 1970-01-01
      • 2017-06-01
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      • 2020-10-04
      • 2013-10-11
      相关资源
      最近更新 更多