2017-03-20 24 views
0

私のページに8文字以上の長さのパスワードを取得しようとしましたが、数字と文字が含まれていますが動作していません。パスワードが有効になると、ユーザーは成功ページに移動します。パスワードの検証は機能しません。JavaScriptは動作しません。

CODE:

<script> 
    $(document).ready(function() { 
    $("#submit").click(function() { 

     var name = document.getElementById("name").value; 
     var email = document.getElementById("email").value; 
     var password = document.getElementById("password").value; 
     var confirm = document.getElementById("confirm").value; 
     var valid = password.length >= 8 // at least 8 characters 
        && /[a-z]/.test(password) // contains a lowercase letter 
        && /\d/.test(password) // contains a digit 


     var dataString = 'name=' + name + '&email=' + email + '&password=' + password; 
     console.log(dataString); 
     if (name == '' || email == '' || password == '') { 
     alert("Fill in empty fields"); 
     } 
     if (password != confirm) { 
     alert("Passwords do not match."); 
     } else if (password == confirm && password != valid) { 
     alert("Password not valid."); 
     } else if(password == '' && confirm == '' && password == confirm) { 
     alert("password can't be empty"); 
     } else { 
     alert("matched"); 
     window.location="newpage.html" 
     } 
     return false; 
    }); 
    }); 
</script> 

私を助けてください:(

+3

何が問題なのですか?どのセクションが失敗していますか? – ste2425

+0

@ ste2425パスワードif文は、「password1」と入力したときに「password not valid」と表示され続けています。パスワードを確認する良い方法は8文字以上あり、数字と文字が1つありますか? – MechroMancer

+1

あなたの文に論理エラーがあります:compare 'password!= valid'ここで、passwordはあなたの文字列で、validはブール値です。おそらく 'password == confirm &&!valid'をチェックするべきでしょうか? – chazsolo

答えて

1
if(password == confirm && !valid) 

はそれをする必要があります。

+0

ちょうどそれを考え出した、ありがとう:) – MechroMancer

0

を代わりに巨大な機能で、粉々に(小さな機能を)それを破る。こうすることですどのようなエラー、バグ、メンテナンスなども簡単に管理できます。

今、具体的には「パスワード検証機能」に関する質問に答えて、このスニペットをチェックしてください。

(function($){ $(function(){ 
 
    
 
    var isPasswordValid = function(password){ 
 
    return password.length >= 8 
 
     && /[a-z]/.test(password) 
 
     && /\d/.test(password) 
 
    } 
 
    
 
    console.log('Is "weakpwd" valid?', isPasswordValid('weakpwd')); 
 
    
 
    console.log('Is "atLeastEightChars" valid?', isPasswordValid('atLeastEightChars')); 
 
    
 
    console.log('Is "Gr3atPassword!" valid?', isPasswordValid('Gr3atPassword!')); 
 
    
 
}) })(jQuery)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

私はあなたのパスワードを使用したのと同じチェックを使用し...、それは良いことです!つまり、あなたが抱えている問題は、パスワードチェックの段階ではなく、どこかにあることを意味します。

乾杯、

関連する問題