2016-07-29 40 views
0

我寫了幾個函數來檢查兩個密碼是否相等。我先輸入兩個密碼。當我點擊「驗證密碼」框時,它應該顯示「密碼匹配」或「需要第二次嘗試,請再次在第一個密碼框中輸入您的密碼,因爲這兩個密碼不匹配」,具體取決於無論密碼是否相等。如果兩個密碼不相同,則顯示消息「需要第二次嘗試,因爲兩個密碼不匹配,請再次在第一個密碼框中輸入密碼」。我還希望第一個密碼框(password1)變成空白(我希望它重置),以及兩個密碼不匹配時。但是,這在我的代碼中不起作用。我在這裏做錯了什麼?如何重置文本框並使文本框中的值等於「」(或空白)? (javascript)

我用了一個password.js文件和一個setpassword.html文件。

我password.js文件是這樣的:

var verifypasswordclick = document.getElementById("txtPWVerified"); 

function verifypassword1() { 
    var password1 = document.getElementById("txtPassword").value; 
    var verifypassword = document.getElementById("txtPWVerified").value; 
    if(password1 == '' || verifypassword == '') { 
     return null; 
    } 
    if(password1 == verifypassword) { 
     alert('The passwords match'); 
    } 
    if(password1 !== verifypassword || password1 == "" || verifypasword == "") { 
     alert("A second try is needed. Please enter your password in the first password box again because the two passwords don't match"); 
    } 
    if(password1 !== verifypassword || password1 == "" || verifypasword == "") { 
     password1 = ""; 
    } 
} 
verifypasswordclick.addEventListener("blur",verifypassword1); 

我setpassword.html文件是這樣的:

<!DOCTYPE html> 
<!-- H5FormValidation.html --> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Register Here</title> 
</head> 

<body> 
    <h2>Register Here</h2> 

    <form id="formTest" method="get" action="processData"> 
    <table> 

    <tr> 
     <td><label for="txtEmail">Email<span class="required">*</span></label></td> 
     <td><input type="email" id="txtEmail" name="email" required></td> 
    </tr> 
    <tr> 
     <td><label for="txtPassword">Password<span class="required">*</span></label></td> 
     <td><input type="password" id="txtPassword" name="password" required></td> 
    </tr> 
    <tr> 
     <td><label for="txtPWVerified">Verify Password<span class="required">*</span></label></td> 
     <td><input type="password" id="txtPWVerified" name="pwVerified" required></td> 
    </tr> 

    <tr> 
     <td>&nbsp;</td> 
     <td> 
      <input type="reset" value="CLEAR" id="btnReset"></td> 
    </tr> 
    </table> 
    </form> 
<script src = "password.js"></script> 
</body> 
</html> 
+1

'的document.getElementById( 「txtPassword」)值= '';' – Amit

+0

謝謝!你的代碼有效,但我想知道爲什麼你需要再次獲取這個值,如果我已經定義了password1。 –

+0

@MichaelBao字符串在JavaScript中傳遞值,所以如果你引用一個字符串並對其進行修改,它將不會修改原始字符串。當你存儲'password1'時,你創建了該值的一個副本。 – kamoroso94

回答

0

你只需要設置的密碼元素的值(感謝ID的元素)

document.getElementById("txtPassword").value = ''; 
0

更改你的password.js代碼如下。 // PS:它不是非常用戶friendy使用警報

var verifypasswordclick = document.getElementById("txtPWVerified"); 
function verifypassword1() { 
     var password1 = document.getElementById("txtPassword") 
     var verifypassword = document.getElementById("txtPWVerified"); 
     //do nothing until the fields is field 
     if(password1.value && verifypassword.value){ 
      if(password1.value === verifypassword.value) { 
       alert('The passwords match'); 
      }else{ 
       alert("A second try is needed. Please enter your password in the first password box again because the two passwords don't match"); 
       password1.value= ""; 

      } 
     } 
    } 
verifypasswordclick.addEventListener("blur",verifypassword1); 

好運

相關問題