Javascript 表单提交在AJAX之前完成,没有“alert()”

Javascript 表单提交在AJAX之前完成,没有“alert()”,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我有一个页面,它使用AJAX从php脚本调用一些html。在这种html中,有许多具有唯一id的特定类的形式。单击submit按钮后,需要通过AJAX将表单提交到php脚本,这样页面就不会重新加载或重定向 我遵循了许多教程的示例,它们都很有效。。。如果我在$document.readyfunction{…}中抛出警报;这就把它们包起来了。我尝试过至少三到四种方法,结果总是一样的。在“准备就绪”中没有警报的情况下,表单将发布到当前页面 因此,我要寻找的是在调用发送POST的函数之前抛出警报的修复方

我有一个页面,它使用AJAX从php脚本调用一些html。在这种html中,有许多具有唯一id的特定类的形式。单击submit按钮后,需要通过AJAX将表单提交到php脚本,这样页面就不会重新加载或重定向

我遵循了许多教程的示例,它们都很有效。。。如果我在$document.readyfunction{…}中抛出警报;这就把它们包起来了。我尝试过至少三到四种方法,结果总是一样的。在“准备就绪”中没有警报的情况下,表单将发布到当前页面

因此,我要寻找的是在调用发送POST的函数之前抛出警报的修复方法,因为没有它,POST不会被AJAX捕获,只会发布到当前的.php文件

阿贾克斯

HTML


不确定到底是什么问题,但您的js可以简化:

$(document).ready(function() {

    $('body').on('submit', '.delete_form', function (ev) {
        ev.preventDefault();
        $.ajax({
              type: "POST",
              url: "deleter.php",
              data: $( this ).serialize(),
              success:function(data){
                   alert(data);
              },
              error:function(data){
                   alert(data);
              },


        });

    });
});

编辑您正在通过ajax加载表单,对吗?在这种情况下,必须将函数绑定到父元素体。查看我的语法更改。

只需将此方法从文档就绪部分中删除即可

 $('.delete_form').on('submit', function (event) {
        event.preventDefault();
        formSubmit(this);

    });

我想是时间问题。这就是无法删除警报的原因。 将脚本更改为

function delete_form_init(){
 $('.delete_form').on('submit', function (event) {
    event.preventDefault();
    formSubmit(this);
    }



function formSubmit(form) {

var element = $(form);
var id = element.attr("id");
var form = new FormData($('#' + id)[0]);

$.ajax({
    type: "POST",
    url: "deleter.php",
    data: form,
    cache: false,
    contentType: false,
    processData: false,

});
}

$(document).ready(function () {
   delete_form_init();

});
})


这样,函数delete\u form\u init将在.ready调用它之前插入到模型中

尝试在ready中写入formSubmit函数,只需检查一下:|我在.ready中编写了formSubmit,并留下了相同的结果。请检查下面的解决方案,如果有人想了解和阅读更多内容,请检查这不起作用。我已经准备好从医生身上取下了那些精确的线。第节,其他内容保持不变。相同的问题。尝试使用此。即使有警报也不起作用。@user3589547然后其他东西在某处干扰了。可能页面上还有其他js?请检查浏览器中的javascript控制台是否有错误控制台显示getPreventDefault已弃用警告http://code.jquery.com/jquery-1.9.1.js. 没有其他错误,通过警报,一切正常。。。请参阅我正在使用的当前代码集的问题编辑。@user3589547如果完全删除getImages函数会发生什么情况?我对这个回答充满希望,根据我读过的其他教程,它似乎是有意义的,但愚蠢地没有将url保存到。但是这不起作用。。。不过,既然你有一个浮动的};,你能再检查一遍代码吗;。。。这是这一页上唯一的表格吗。如果您不介意,您可以终止所有表单$document.ready函数{$form.submit函数e{e.preventDefault;};};
$(document).ready(function() {

    $('body').on('submit', '.delete_form', function (ev) {
        ev.preventDefault();
        $.ajax({
              type: "POST",
              url: "deleter.php",
              data: $( this ).serialize(),
              success:function(data){
                   alert(data);
              },
              error:function(data){
                   alert(data);
              },


        });

    });
});
 $('.delete_form').on('submit', function (event) {
        event.preventDefault();
        formSubmit(this);

    });
function delete_form_init(){
 $('.delete_form').on('submit', function (event) {
    event.preventDefault();
    formSubmit(this);
    }



function formSubmit(form) {

var element = $(form);
var id = element.attr("id");
var form = new FormData($('#' + id)[0]);

$.ajax({
    type: "POST",
    url: "deleter.php",
    data: form,
    cache: false,
    contentType: false,
    processData: false,

});
}

$(document).ready(function () {
   delete_form_init();

});