JS事件未更改输入禁用属性

JS event not changing input disabled attr

本文关键字:属性 输入 事件 JS      更新时间:2023-09-26

我目前正试图在我的网站上设置一个注册页面,但遇到了一个问题:我的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 />

因此,在我看来,应该在密码不匹配时添加"禁用"属性,并在匹配时删除它,但实际情况是:

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

就像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);
}

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

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

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