javascript - AJAX:在没有页面刷新的情况下提交表单只能工作一次

标签 javascript jquery ajax

我正在使用 AJAX 在后台提交表单,而不刷新页面。我遇到的问题是我只能提交一次表格。在我提交一次后,on('submit') 函数不再有效,我也没有收到任何错误。这完全违背了使用 AJAX 提交表单的目的:/

           $(document).on('submit', '#myForm', function(e) {
                $.post('mail.php', $(this).serialize(), function (data) {
                    //SUCCESS
                    $('.successORfail').html(data);
                     setTimeout(function(){
                      $(".successORfail").fadeOut("slow", function () {
                        $(".successORfail").remove();
                      });
                    }, 4500);

                }).error(function() {
                    alert("Fatal Error: mail.php not found!");
                });
                e.preventDefault();
            });

不知道有没有人遇到过类似的问题,或者知道怎么解决的?如果需要,我希望能够多次提交表单,并在每次提交后更改表单输入值。

提前致谢

最佳答案

您确定 AJAX 请求没有发生吗?看起来您正在从页面中删除 .successORfail 元素,因此在后续调用中没有任何内容可追加。

检查您的控制台,您可能会注意到每次都会发生 ajax 调用。

尝试将您的 setTimeout 更改为:

var msgEl = $(".successORfail");
setTimeout(function() {
    msgEl.fadeOut("slow", function () {
        msgEl.empty().show();
    });
}, 4500);

关于javascript - AJAX:在没有页面刷新的情况下提交表单只能工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14236638/

相关文章:

javascript - 三个 JS 中的 SetTimeOut()

javascript - 从 javascript 与正在运行的 python 进行通信的正确方法

php - 在ajax内部调用ajax

java - 如何在将表单提交到 3rd 方 url 之前调用服务器端操作方法?

javascript - 如何使用 JavaScript 每 10 秒检查一次状态?

javascript - 使花式框透明

javascript - 单击时替换按钮颜色

javascript - 这里的jquery代码有区别吗?

javascript - 如何使用 JQuery 使表行的一部分可单击

javascript - HTML onClick 不适用于 Windows Phone