简体   繁体   English

强制Javascript函数调用等到上一个完成mvc 4

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

I try to execute two functions in javascript, but the second function have to wait for first function was finished. 我尝试在javascript中执行两个函数,但是第二个函数必须等待第一个函数完成。

View: 视图:

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

First function js: 第一个功能js:

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

} }

Second function js (wait for first was finished): 第二个函数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!!");
}

} }

Call CountEstab() inside success function . success function调用CountEstab()

html HTML

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

javascript 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();
        }
    });
}

Pass the second function as a callback to the first function. 将第二个函数作为回调传递给第一个函数。

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