Javascript Sweetalert多次发送表单

时间:2017-11-23 13:19:59

标签: javascript jquery forms sweetalert sweetalert2

我的以下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>

1 个答案:

答案 0 :(得分:0)

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

formModal()

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

Sweet Alert与表单的多个提交无关