我正在制作一个注册表单,我想检查用户在输入时是否有匹配的密码,并给他适当的消息。到目前为止,除了这些之外,一切正常:
- 当用户删除确认密码字段中的所有内容时,它仍然存在 当我想给他的时候给他一条消息“密码不匹配” 没有消息或消息说“请确认密码”。
- 当 用户删除了两个字段中的所有内容,这给了他一条消息 “密码匹配”,但它根本不应该给他任何消息。
这是我的代码:
$(function () {
$("#txtNewPassword").keyup(checkPasswordMatch);
$("#txtConfirmPassword").keyup(checkPasswordMatch);
});
function checkPasswordMatch() {
$("#divCheckPasswordMatch").html("");
var password = $("#txtNewPassword").val();
var confirmPassword = $("#txtConfirmPassword").val();
if (password == "" && confirmPassword == ""){
$("#divCheckPasswordMatch").html("");
$("#divIsPasswordExist").html("");
}
else if (password != "" && confirmPassword == "") {
$("#divCheckPasswordMatch").html("");
}
else if (password == "" && confirmPassword != "")
$("#divIsPasswordExist").html("Password cannot be empty!");
else
$("#divIsPasswordExist").html("");
if (password != confirmPassword)
{
$("#divCheckPasswordMatch").removeClass("registrationFormConfirm");
$("#divCheckPasswordMatch").addClass("registrationFormAlert");
$("#divCheckPasswordMatch").html("Passwords do not match!");
}
else
{
$("#divCheckPasswordMatch").removeClass("registrationFormAlert");
$("#divCheckPasswordMatch").addClass("registrationFormConfirm");
$("#divCheckPasswordMatch").html("Passwords match.");
}
}
请问有什么想法吗? 谢谢!
最佳答案
这是因为 if (password !=confirmPassword)
为 false,因为当您设置 var password = $("#txtNewPassword").val(); 时,两者都是空的。
和 var verifyPassword = $("#txtConfirmPassword").val();
它们彼此相等。您应该在检查值是否为空后添加一个返回,这样当用户删除文本时,它不会检查第一个检查语句下面的任何内容。
//首先检查
if (password == "" && confirmPassword == ""){
return false;
}
...其余代码
关于javascript - 当两个字段都为空时,检查密码匹配返回 "Passwords match",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9785860/