jquery函数总是返回false

时间:2014-06-25 08:21:52

标签: javascript jquery ajax validation

我使用jquery使用ajax验证表单是否正确,然后将新密码与确认密码输入进行比较,但函数总是返回false,提交按钮不起作用所有这里的代码(来自ajax的返回数据是正确的,我已经检查过了)

function check_pwd() {
    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 {
                return true;
            }
        }
    }
    ajax.send(null);
}

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() {
    if (!check_pwd() || !confirmPwd()) {
        return false;
    } else {
        return true;
    }
}

1 个答案:

答案 0 :(得分:1)

在验证旧密码验证后进行新密码验证。

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;
    }
}