2012-03-20 34 views
0

登録フォームを作成していて、入力中にパスワードが一致するかどうかを確認して、これまでのところ、すべてはこれらのものを除いて、動作します:パスワード一致を確認すると、両方のフィールドが空の場合に「パスワード一致」が返されます

  • ユーザーがパスワードの確認]フィールドからすべてを削除すると、それはまだ 私は に彼に何のメッセージやメッセージを与えないようにしたいしながら、メッセージ「パスワードが一致しない」彼を与えます「パスワードを確認してください」と言ってください。
  • ユーザーが両方のフィールドからすべてを削除すると、彼にメッセージが返されます。 "パスワード一致"が表示されます。 、

    $(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."); 
        } 
    } 
    

    任意のアイデアください:

は、ここに私のコードですか? ありがとうございました!

+0

「リターン」とは、コード全体を実行するのではなく、適切なメッセージを与えてその特定の場所から戻ってくるのに役立ちます。 –

+0

質問には直接関係しませんが、onKeyUpの代わりにHTML5 ['onInput'](http://mathiasbynens.be/notes/oninput)イベントを検出することに興味があります。 –

答えて

1
...... 
     if (password == "" && confirmPassword == ""){ 
      $("#divCheckPasswordMatch").html(""); 
      $("#divIsPasswordExist").html("Password and Confirm Password dosen't exists"); 
      return; 
     } 
     else if (password != "" && confirmPassword == "") { 
      $("#divCheckPasswordMatch").html("Confirm Password dosent't exists"); 
      return; 
     } 
     else if (password == "" && confirmPassword != ""){ 
      $("#divIsPasswordExist").html("Password cannot be empty!"); 
      return; 
     } 
     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."); 
     } 
......... 
+0

ありがとうございました!素晴らしい仕事を! – Igal

2

if (password != confirmPassword)はいずれも空であるため、var password = $("#txtNewPassword").val();var confirmPassword = $("#txtConfirmPassword").val();を両方ともお互いに等しく設定すると、falseであるためです。値が空であるかどうかをチェックした後に戻り値を追加すると、ユーザーがテキストを削除したときに最初のチェック文の下に何もチェックされません。

//最初のチェック

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

...残りのコード

1
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."); 
     } 

... 
... 
1

これを行うにはよりエレガントな方法があります。あなたの条件をこれに変更してください

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

} else { 
    //not entered 
} 
関連する問題