Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查密码匹配返回“;“密码匹配”;当两个字段都为空时_Javascript_Jquery_Passwords - Fatal编程技术网

Javascript 检查密码匹配返回“;“密码匹配”;当两个字段都为空时

Javascript 检查密码匹配返回“;“密码匹配”;当两个字段都为空时,javascript,jquery,passwords,Javascript,Jquery,Passwords,我正在制作一份注册表,我想检查用户在打字时是否有匹配的密码,并给他适当的信息。到目前为止,一切正常,除了以下几点: 当用户从“确认密码”字段中删除所有内容时,它仍然 给他一条“密码不匹配”的信息,而我想给他 没有消息或显示“请确认密码”的消息 当 用户删除这两个字段中的所有内容,它会给他一条消息 “密码匹配”,但它应该不会给他任何信息 这是我的密码: $(function () { $("#txtNewPassword").keyup(checkPasswordMatch); $

我正在制作一份注册表,我想检查用户在打字时是否有匹配的密码,并给他适当的信息。到目前为止,一切正常,除了以下几点:

  • 当用户从“确认密码”字段中删除所有内容时,它仍然 给他一条“密码不匹配”的信息,而我想给他 没有消息或显示“请确认密码”的消息
  • 当 用户删除这两个字段中的所有内容,它会给他一条消息 “密码匹配”,但它应该不会给他任何信息
这是我的密码:

$(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.");
    }
}
有什么想法吗? 谢谢大家!

这是因为当您设置
var password=$(“#txtNewPassword”).val()时,
if(password!=confirmPassword)
为false,因为两者都是空的
var confirmPassword=$(“#txtConfirmPassword”).val()这两者都相等。您应该在检查值是否为空后添加一个返回,这样当用户删除文本时,它就不会检查第一个check语句下面的任何内容

//第一张支票

if (password == "" && confirmPassword == ""){
return false;
}
。。。代码的其余部分

这是因为当您设置
var password=$(“#txtNewPassword”).val()时,
if(password!=confirmPassword)
为false,因为两者都是空的
var confirmPassword=$(“#txtConfirmPassword”).val()这两者都相等。您应该在检查值是否为空后添加一个返回,这样当用户删除文本时,它就不会检查第一个check语句下面的任何内容

if (password == "" && confirmPassword == ""){
    return false;
}
    ....
    ....

if(confirmPassword != "")
    $("#txtConfirmPassword").html("Please confirm password");

        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 == ""){
return false;
}

。。。代码的其余部分

有一种更优雅的方法可以做到这一点。把你的条件改成这个

if (password == "" && confirmPassword == ""){
    return false;
}
    ....
    ....

if(confirmPassword != "")
    $("#txtConfirmPassword").html("Please confirm password");

        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.length > 0 && confirmPassword.length >0) {
    if(password == confirmPassword) {
        //confirmed
    } else {
       // not confirm
    }

} else {
   //not entered
}

有一种更优雅的方法可以做到这一点。把你的条件改成这个

if(password.length > 0 && confirmPassword.length >0) {
    if(password == confirmPassword) {
        //confirmed
    } else {
       // not confirm
    }

} else {
   //not entered
}

我认为
return
有助于你给出正确的信息并从特定的地方返回,而不是执行整个代码。与问题没有直接关系,但是你可能对检测HTML5事件感兴趣,而不是
onKeyUp
。我认为
return
有助于你给出正确的消息并从特定的位置返回,而不是执行整个代码。这与问题没有直接关系,但是您可能对检测HTML5事件感兴趣,而不是
onKeyUp