繁体   English   中英

jQuery将变量设置为true并获取var是否为true

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM