JS事件没有改变输入禁用attr

时间:2015-04-02 23:20:21

标签: javascript jquery html

我目前正在尝试在我的网站上设置注册页面,但我遇到了问题: 我的JS脚本不像我希望它那样行事

这是我的脚本:

function checkPasswordMatch() {
var password = $("#password").val();
var confirmPassword = $("#retypepassword").val();

if (password != confirmPassword) {
    $("#pass").html("Passwords do not match!");
    $("#submit").attr("disabled");
}
else {
    $("#pass").html("Password match.");
    $("#submit").removeAttr("disabled");
    }
}
$(document).ready(function () {
$("#retypepassword").keyup(checkPasswordMatch);
});

我的HTML代码:

<INPUT class="btn btn-primary" type="submit" id="submit" name="" value="Register" disabled />

所以在我看来,它应该添加&#34;禁用&#34;密码不匹配时的属性,并在匹配时将其删除,但这是发生的事情:

当密码匹配时,禁用状态将被删除,但如果它们不匹配(例如,如果因任何原因而被修改),则状态不会再次返回

2 个答案:

答案 0 :(得分:1)

要实现您所描述的内容,请尝试稍微更改为:

$("#submit").attr("disabled", true);

$("#submit").attr("disabled", false);

答案 1 :(得分:1)

像AlexGm一样,我建议你试试这个。

function checkPasswordMatch() {
	var password = $("#password").val();
	var confirmPassword = $("#retypepassword").val();
	
	// Note: !==
	var noMatch = password !== confirmPassword;

	if (noMatch) {
		$("#pass").html("Passwords do not match!");
	} else {
		$("#pass").html("Password match.");
	}

	$("#submit").attr("disabled", noMatch);
}