[英]Set var to true if another var is falsy or true but not boolean false
[英]jquery set variable to true and get if var is true
我正在验证表单字段,当所有表单字段正确填写后,我要启用“提交”按钮。 我的验证工作正常,但未将变量设置为true并检查该变量。 例如..
if(password != confirm_password) {
$("#password_mismatch").css("display", "inline");
} else {
$("#password_mismatch").css("display", "none");
var password_match_valid = true;
return false;
}
此功能检查所有内容均已验证并启用按钮
function validate(){
if ($('#name').val().length > 0 &&
password_match_valid == true) {
$('#signup_btn').prop("disabled", false);
}
else {
$('#signup_btn').prop("disabled", true);
}
}
引起问题的位是
var password_match_valid = true;
和
password_match_valid == true
这将设置一个局部变量:
var password_match_valid = true;
从声明它的函数外部看不到该变量,尤其是从validate
函数看不到该变量。
一个解决方案是通过添加
var password_match_valid;
在全局范围内并删除您当前拥有的var
关键字。
但是尚不清楚为什么不直接在validate
函数中进行测试,因此可能存在更干净的解决方案,具体取决于其余的代码。
您的变量password_match_valid
必须是全局变量。 为此,在任何函数之外声明它。
var password_match_valid = true;
该变量仅存在于您的else
语句中。 进入validate()
函数时,您没有对password_match_valid
可见性。 尝试使用全局变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.