Jquery在$.when()之后使用触发器单击



我有一个jquery代码,它响应一个编辑函数,之后它将触发loademployees函数,并再次加载具有编辑值的表,但问题是,当我在$.when()中应用它时,它不会触发loademperoyees函数。请看一下我的代码以获得清晰:

$(function(){
$('#editEmployeeForm').submit(function(e){
    $.when(
        $.ajax({
            type: 'POST',
            url: "<?php echo site_url('tms/updateEmployee');?>",
            data: $(this).serialize(),
            success: function(response){
                console.log(response);
            },
        }),
        $.ajax({
            type: 'POST',
            url: "<?php echo site_url('tms/updatePersonalData');?>",
            data: $(this).serialize(),
            success: function(response){
                console.log(response);
            },
        }),
        $.ajax({
            type: 'POST',
            url: "<?php echo site_url('tms/updateGovernment');?>",
            data: $(this).serialize(),
            success: function(response){
                console.log(response);
            },
        }),
        $.ajax({
            type: 'POST',
            url: "<?php echo site_url('tms/updateRequirements');?>",
            data: $(this).serialize(),
            success: function(response){
                console.log(response);
            },
        }),
        $.ajax({
            type: 'POST',
            url: "<?php echo site_url('tms/updateContacts');?>",
            data: $(this).serialize(),
            success: function(response){
                console.log(response);
            },
        }));
        $('#modalEditEmployees').modal('hide');
        $('#btnloadEmployees').trigger(e.type);
    });
});

这里是要触发的功能:

$('#btnloadEmployees').click(function(e){
var dept = $('#cmbdept').val();
if(dept == "SEWING")
{
    var section = $('#cmbsection').val();
    var line = $('#cmbline').val();
    var formData = {dSection:section,dLine:line,dept:dept};
}
else
{
    var formData = {dept:dept};
}
$.ajax({
    type: 'POST',
    url: "<?php echo site_url('tms/loadEmployees');?>",
    data: formData,
    success: function(response){
        console.log(response);
        $('#tblEmployees tbody').empty();
        $('#tblEmployees tbody').append(response);
    },
});
});

请参阅https://api.jquery.com/jquery.when/,$.when的语法应该类似

$.when( $.ajax(".."), $.ajax(".."), $.ajax("..")).done(function(){
    $('#modalEditEmployees').modal('hide');
    $('#btnloadEmployees').trigger(e.type);
});

并且您应该在防止表单默认提交行为时将e.preventDefault();放在前面。

最新更新