我读了这个: jQuery ajax表单提交了多次
它没有帮助。
如果我在表单上键入内容并单击提交按钮,则它将发送一个请求。第二次,如果我键入内容并单击,它会发送两个请求。第三次发送三个请求,依此类推。为什么是这样?我在jquery代码中做任何错误吗?
这是我的代码:
index.php =>
javascript.js =>
$(document).ready(function(){ console.log('hello'); $('input[name="nm_submit_comment"]').on('click',function(){ var frm = $(this).closest("form")[0]; var frm_id = $(frm).attr("id"); var frm_id_splitted = frm_id.split("_"); var frm_id_splitted_2 = frm_id_splitted[2]; console.log($('div#id_div_' + frm_id_splitted_2)); $(frm).on('submit',function(e){ e.preventDefault(); frm_serialized = $(this).serialize(); console.log(frm_serialized); $.ajax({ url: "save-comment.php", method: "POST", data: frm_serialized, success: function(data) { console.log(data); $('div#id_div_' + frm_id_splitted_2).append(data); } }); }); }); });
save-comment.php =>
Parth Trived.. 6
one
然后尝试on
$("#id_form_1").one('submit', function (e) { e.preventDefault(); frm_serialized = $(this).serialize(); console.log(frm_serialized); $.ajax({ url: "save-comment.php", method: "POST", data: frm_serialized, success: function (data) { console.log(data); $('div#id_div_' + frm_id_splitted_2).append(data); } }); });
同样,也无需bind
只提交serialize
您最近的表格并ajax
打电话。您正在绑定事件内部,事件执行multiple binding
。
one
然后尝试on
$("#id_form_1").one('submit', function (e) { e.preventDefault(); frm_serialized = $(this).serialize(); console.log(frm_serialized); $.ajax({ url: "save-comment.php", method: "POST", data: frm_serialized, success: function (data) { console.log(data); $('div#id_div_' + frm_id_splitted_2).append(data); } }); });
同样,也无需bind
只提交serialize
您最近的表格并ajax
打电话。您正在绑定事件内部,事件执行multiple binding
。
您正在使用submit
的代码在内部注册表单事件click
按钮上事件事件。因此,每次您单击按钮时,它都会不断添加事件。
这应该足够好。
$(document).ready(function(){ $('input[name="nm_submit_comment"]').on('click',function(e){ e.preventDefault(); var frm = $(this).closest("form"); var frm_id = frm.attr("id"); var frm_id_splitted = frm_id.split("_"); var frm_id_splitted_2 = frm_id_splitted[2]; var frm_serialized = frm.serialize(); $.ajax({ url: "save-comment.php", method: "POST", data: frm_serialized, success: function(data) { console.log(data); $('div#id_div_' + frm_id_splitted_2).append(data); } }); }); });