Jquery Ajax 表单提交

Posted

技术标签:

【中文标题】Jquery Ajax 表单提交【英文标题】:Jquery Ajax Form Submission 【发布时间】:2011-04-23 06:54:08 【问题描述】:

我正在尝试在 Jquery 中提交 Ajax 表单。表单本身是通过 Ajax 事件加载的

表单元素如下所示

<form id="create_user form" action="http://127.0.0.1/create_user" method="post">

  <p>Name
  <input type="text" name="name" value="" id="name"></p>
  <p>Employee Number:<br>
  <input type="text" name="emp_no" value="" id="emp_no"></p>
  <p>Email:<br>
  <input type="text" name="email" value="" id="email"></p>

  <p><input type="submit" name="submit" value="Save"></p>

  </form>

当作为 html 加载时,它可以正常工作。

但是我试图通过 Ajax 事件将其加载到另一个页面中

所以结果是这样的

<div class="admin_main" id="admin_main">
<form id="create_user form" action="" method="post">

   .....Form......
<p><input type="submit" name="submit" value="Save"></p>
</form>

</div>

文档就绪函数中的Jquery代码是

$("#admin_main").delegate("#create_user_form", "submit", function() 
    $.post('http://127.0.0.1/create_user', $("#create_user_form").serialize(), function (data) 
        $("#admin_main").html(data);
    , "html");
);

但是,这仅具有重新加载页面的效果。我已经做了好几个小时了。我哪里错了?

【问题讨论】:

【参考方案1】:

我想你忘记了提交函数中的return: false;(或event.preventDefault() / event.stopPropagation() - 不确定这里需要什么)。您绝对必须以某种方式停止提交事件。

【讨论】:

返回:假;和 event.preventDefault()>>>> 都试过了。只有页面重新加载。 您好,感谢您的回答。这确实是问题所在。 function(e)..... e.preventDefault();

以上是关于Jquery Ajax 表单提交的主要内容,如果未能解决你的问题,请参考以下文章

使用JQuery的ajax提交表单能否使用一个变量来获取form的id

jquery submit和ajax提交表单的区别

怎么使用jquery提交表单

Jquery Ajax 表单提交

用的ajax提交的表单,js base64编码怎么用

jQuery 在提交表单之前等待 Ajax