簡體   English   中英

強制Javascript函數調用等到上一個完成mvc 4

[英]Force Javascript function call to wait until previous one is finished mvc 4

我嘗試在javascript中執行兩個函數,但是第二個函數必須等待第一個函數完成。

視圖:

<button id="DefinirEstab" class="btn btn-success btn-lg" data-toggle="modal" data-target="#myModal" onclick="saveContrato(); CountEstab()"> Define
 </button>

第一個功能js:

function saveContrato() {
$("#formContrato").ajaxSubmit({
    type: "POST",
    url: $("#formContrato").attr("action"),
    clearForm: false,
    success: function () {
        $("#Serie").attr("disabled", true)
    }
});
$("#DefinirEstab").attr("onclick", "CountEstab()");

}

第二個函數js(等待第一個函數完成):

function CountEstab() {

    //Guardar os dados na tabela serviço
    var Serie = $("#Serie").val();
    var NumDoc = $("#NumDoc").val();
    $.getJSON("/Contrato/saveCabecalhoServicos", {
        serie: Serie, numDoc: NumDoc, idForn: window.IdFornecedor, idFilial: e
    });

} else {
    alert("Falta de dados obrigatórios preenchidos!!");
}

}

success function調用CountEstab()

HTML

<button id="DefinirEstab" class="btn btn-success btn-lg" data-toggle="modal" data-target="#myModal"> Define
</button>

JavaScript的

$('#DefinirEstab').on('click', function() { 
    saveContrato();
    return false;
});   

function saveContrato() {
    $("#formContrato").ajaxSubmit({
        type: "POST",
        url: $("#formContrato").attr("action"),
        clearForm: false,
        success: function () {
            $("#Serie").attr("disabled", true);
            CountEstab();
        }
    });
}

將第二個函數作為回調傳遞給第一個函數。

function saveContrato(callback) {
    $("#formContrato").ajaxSubmit({
        type: "POST",
        url: $("#formContrato").attr("action"),
        clearForm: false,
        success: function () {
            $("#Serie").attr("disabled", true)
            callback();
        }
    });
    $("#DefinirEstab").attr("onclick", "CountEstab()");
}

saveContrato(CountEstab)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM