Javascript Ajax.done()未检测到form.submit

Javascript Ajax.done()未检测到form.submit,javascript,jquery,html,ajax,submit,Javascript,Jquery,Html,Ajax,Submit,我用ajax从另一个文件中附加了一个表单,它是由以下事件触发的常规表单: <a href="javascript:void(0);" class="remitir" title="Reemitir Solicitud" data-id="'.$value['idsolicitud'].'"><i class="fas fa-lg fa-retweet"></i></a> 下面是AJAX代码 function remiteSolicitud(x){

我用ajax从另一个文件中附加了一个表单,它是由以下事件触发的常规表单:

<a href="javascript:void(0);" class="remitir" title="Reemitir Solicitud" data-id="'.$value['idsolicitud'].'"><i class="fas fa-lg fa-retweet"></i></a>
下面是AJAX代码

function remiteSolicitud(x){
$.ajax({
        type: 'POST',
        url: 'anotherFile/',
        data: { id: x },
        cache: false,
        beforeSend: function () {
            $(".page-loader-wrapper").fadeIn();
        },
        success: function (e) {
            $('#myModal').modal('show');
            $('.modal-body').html(e);
        },
        complete: function () {
            $(".page-loader-wrapper").fadeOut();
        }
    }).done(function () {
        $("#formID").submit(function (event) {
            alert("Handler for .submit() called.");
            event.preventDefault();
        });

    });
}
现在我遇到的问题是.done()函数在我提交表单并重新加载页面时没有检测到


有人知道会是什么吗?我在另一个文件中有完全相同的代码,它可以工作。

您不需要在回调中附加事件,只需在执行请求之前附加它即可

我正在用ajax从另一个文件中附加一个表单

因此,您需要使用事件委派
.on()
,因为您的表单是动态添加到DOM的:

$("body").on("submit", "#formID", function (event) {
    event.preventDefault();

    alert("Handler for .submit() called.");
});

$.ajax({
    type: 'POST',
    url: 'anotherFile/',
    data: { id: x },
    cache: false,
    beforeSend: function () {
        $(".page-loader-wrapper").fadeIn();
    },
    success: function (e) {
        $('#myModal').modal('show');
        $('.modal-body').html(e);
    },
    complete: function () {
        $(".page-loader-wrapper").fadeOut();
    }
});

只需提交调用ajax的表单事件

$("body").on("submit", "#formID", function (event) {
    event.preventDefault();
    //put your ajax call here

    alert("Handler for .submit() called.");
});

什么触发了Ajax调用?您是否停止对触发Ajax请求的任何事件的处理?在
done
处理程序中有一个
preventDefault
,但它对首先触发Ajax调用的任何东西都不起作用。
$("body").on("submit", "#formID", function (event) {
    event.preventDefault();
    //put your ajax call here

    alert("Handler for .submit() called.");
});