Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery函数总是返回false_Javascript_Jquery_Ajax_Validation - Fatal编程技术网

Javascript jquery函数总是返回false

Javascript jquery函数总是返回false,javascript,jquery,ajax,validation,Javascript,Jquery,Ajax,Validation,我正在使用jquery验证一个表单,使用ajax检查旧密码是否正确,然后将新密码与确认密码输入进行比较,但函数始终返回false提交按钮根本不起作用这是代码(从ajax返回的数据正确,我已检查过) 当旧密码已经验证时,进行新密码验证 function confirmPwd() { var pwd1 = $("#newPWD").val(); var pwd2 = $("#newPWD2").val(); if (pwd1 !== pwd2) { alert

我正在使用jquery验证一个表单,使用ajax检查旧密码是否正确,然后将新密码与确认密码输入进行比较,但函数始终返回false提交按钮根本不起作用这是代码(从ajax返回的数据正确,我已检查过)


当旧密码已经验证时,进行新密码验证

function confirmPwd() {
    var pwd1 = $("#newPWD").val();
    var pwd2 = $("#newPWD2").val();
    if (pwd1 !== pwd2) {
        alert("do not match");
        return false;
    } else {
        return true;
    }
}

function check_form() {
    var pass = $("#oldPWD").val();
    ajax = new XMLHttpRequest();
    ajax.open("POST", "ajax/check_pass.php?pass=" + pass);
    ajax.onreadystatechange = function () {
        if (ajax.readyState == 4 && ajax.status == 200) {
            result = ajax.responseText;
            if (result.indexOf('wrong') !== -1) {
                alert("wrong password");
                return false;
            } else {
                confirmPwd();
            }
        }
    }
    ajax.send(null);

    if (!check_pwd() || !confirmPwd()) {
        return false;
    } else {
        return true;
    }
}

您正在将异步调用与同步调用相结合。。!它不是
$.ajax(…)
吗?为什么不使用
$.ajax().success(function(){…})
?它返回单词correct或error您不能从回调函数内部返回值到外部check\u pwd函数!这是另一个范围。那么如何在ajax中返回true或false呢?我知道这一点,但是表单是在不输入任何数据处理的情况下提交的,但是您可以在加载页面时调用check_form()。
function confirmPwd() {
    var pwd1 = $("#newPWD").val();
    var pwd2 = $("#newPWD2").val();
    if (pwd1 !== pwd2) {
        alert("do not match");
        return false;
    } else {
        return true;
    }
}

function check_form() {
    var pass = $("#oldPWD").val();
    ajax = new XMLHttpRequest();
    ajax.open("POST", "ajax/check_pass.php?pass=" + pass);
    ajax.onreadystatechange = function () {
        if (ajax.readyState == 4 && ajax.status == 200) {
            result = ajax.responseText;
            if (result.indexOf('wrong') !== -1) {
                alert("wrong password");
                return false;
            } else {
                confirmPwd();
            }
        }
    }
    ajax.send(null);

    if (!check_pwd() || !confirmPwd()) {
        return false;
    } else {
        return true;
    }
}