使用.on的Jquery Ajax表单(“submit”,

我有一个页面上有几个html表单。 下面是通过ajax调用提交表单的jquery代码。 当提交内容div中的任何表单时,它确实进行ajax调用。 即使在通过ajax重新加载表单后它也会触发。 我无法弄清楚如何将表单数据传递给处理函数。 任何帮助将不胜感激。

澄清:var formData = $(this).serializeArray(); 不管用。 formData没有从表单fileds获取值。

$.ajaxSetup({ url: "ajax.php", type: 'POST', contentType: "application/json; charset=utf-8", datatype: 'json', cache: false, timeout : 5000 }); $("#content").on("submit", function(e) { e.preventDefault(); var formData = $(this).serializeArray(); $.ajax({ data: formData, success: function(jsonData) { htmlData = jQuery.parseJSON(jsonData); $.each(htmlData, function(id, data){ $("#"+id).html(data); }); } }); }; 

更新:

如果我改变

 $("#content").on("submit", function(e) 

 $("#content").on("submit", "form", function(e) 

表单数据被序列化,ajax函数按预期工作。 新问题是如果表单未完成并且(通过ajax)重新加载到内容分区中,则提交事件不再触发该函数。 我试图配置.on()来运行.live()在早期版本的jquery中的function。 它将在ajax重新加载后重新绑定提交事件。 在这种情况下,.on()不是重新绑定。 希望有道理!

你需要通过$ _POST全局变量在ajax.php中获取传递的变量。

例如:

$myVar = $_POST['field_name'];