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

时间:2018-10-26 14:40:17

标签: javascript jquery html ajax submit

我要使用ajax从另一个文件中追加一个表单,它是由以下形式触发的onform事件触发的常规表单:

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

和它后面的jquery是:

$('.remitir').on('click', function (e) {
        e.preventDefault();
        var id = $(this).data('id');
        remiteSolicitud(id);
    });

这是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()函数未检测到。

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

2 个答案:

答案 0 :(得分:1)

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

  

我正在使用ajax从另一个文件追加表单

因此您需要使用事件委托SelectedValuePath,因为您的表单是动态添加到DOM的:

<ComboBox Name="DropdownDansen" ... SelectedValue="{Binding dans}" SelectedValuePath="dans">

答案 1 :(得分:0)

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

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

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