使用.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'];