我的以下javascript函数多次发送表单。 同时发布4到9个帖子,我现在无法理解。
这是功能:
function formModal(url, id, type, text, send_type) {
$(document).ready(function () {
$('#' + id).on('submit', function (e) { //id of form
$.ajax({
url: url, // PHP file
data: $(this).serialize(),
type: send_type,
success: function (data) {
console.log(data);
// Success Alert
swal({
html: true,
title: text,
type: type,
timer: 1500,
showConfirmButton: false
});
setTimeout(function () {
// Refresh after 2 seconds
window.location.href = "";
}, 2200);
},
error: function (data) {
//Error Alert
swal("Oops...", "Something went wrong :(", "error");
}
});
e.preventDefault(); //This is to Avoid Page Refresh and Fire the Event "Click"
});
});
};
该函数将用于HTML / PHP脚本:
<script> formModal('/dashboard_scripts/module/wiki/edit_wiki_article.php', 'edit_article', 'success', 'Artikel wurde gespeichert', 'GET') </script>
答案 0 :(得分:0)
你在代码中做了什么,为什么$(document).ready()
在function formModal()
内,然后在$(document).ready()
内你绑定submit
处理程序,这意味着你每次调用{ {1}}您绑定了一个提交事件处理程序,这就是多次提交表单的主要原因。你应该从函数中删除提交处理程序并进行简单的ajax调用或更改
formModal()
到
$('#'+id).on('submit', function (e) {
Sweet Alert与表单的多个提交无关