Javascript Sweetalert 多次发送表单

Javascript Sweetalert is sending form multiple times

我的后续 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>

你在你的代码中做了什么,为什么 $(document).ready()function formModal() 里面,然后在 $(document).ready() 里面你绑定了 submit 处理程序,这意味着每次你调用formModal() 您正在绑定一个提交事件处理程序,这是多次提交表单的主要原因。您应该从函数中删除提交处理程序并进行简单的 ajax 调用或更改

$('#'+id).on('submit', function (e) {

$('#'+id).off('submit').on('submit', function (e) {

Sweet Alert 与多次提交表单无关