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