Javascript 没有按顺序执行 if 语句

Javascript not executing if statements sequentially

我正在尝试编写一个表单验证程序。我希望它会检查所有 if 语句并最终给出真或假的结果。但它一调用就返回 true。

function validator() {
    var ret = true;

    fname = document.getElementById('fname').value;
    newp = document.getElementById('newp').value;

    if (fname == null || fname == "") {
        bootbox.alert("Name is empty");
        ret = ret && false;

    }

    if (newp.length > 0) {

        bootbox.confirm("Account will be locked",
            function(result) {
                if (result == true) {
                    ret = ret && true;

                } else {
                    ret = ret && false;

                }
            });
    }

    return ret;

}

bootbox 确认对话框不会阻止外部 "validator" 函数的执行。当确认对话框仍在显示时,该外部函数将 return。

使用 Bootstrap 对话框代码之类的东西,您确实无法实现这样的功能。您传递给确认对话框的回调函数 将被调用 ,但直到用户与对话框交互时才会调用。