jquery将变量设置为true,如果var为true则获取

时间:2013-12-11 09:13:13

标签: javascript jquery

我正在验证表单字段,当正确填写所有表单字段时,我想启用提交按钮。我的验证工作正常,但没有将变量设置为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

3 个答案:

答案 0 :(得分:4)

这设置了一个局部变量:

var password_match_valid = true;

此变量在声明它的函数外部是不可见的,尤其是validate函数无法看到它。

解决方案是通过添加

使其全球化
var password_match_valid;

在全局范围内,并删除您当前拥有的var关键字。

但目前尚不清楚为什么测试没有直接在validate函数中完成,因此可能会有更清晰的解决方案,具体取决于代码的其余部分。

答案 1 :(得分:1)

您的变量password_match_valid必须是全局变量。因为它声明它在任何函数之外。

答案 2 :(得分:0)

var password_match_valid = true;

此变体仅存在于您的else语句中。进入validate()功能,您无法查看password_match_valid。尝试使用全局变种