2009-05-27 79 views
1

任何人都可以告訴我我做錯了什麼嗎?我的comparePasswords()不工作...比較Javascript中的兩個字段 - 不能正常工作

 <script> 

      function comparePasswords() 
      { 
       if (post-form.password.value != post-form.password2.value) 
       { 
        $('passwordShow').innerHTML = ''; 
       } 
       else 
       { 
        $('passwordShow').innerHTML = 'Passwords do not match'; 
       } 
      } 
     </script> 


<form id="post-form" action="signup.php" method="post" > 

<input type="password" id="password" name="password" onkeyup="testPassword(this.value);" maxlength="50" size="25" tabindex="102" value=""> 

<input type="password" id="password2" name="password2" onkeyup="comparePasswords();" maxlength="50" size="25" tabindex="104" value=""> 

</form> 

回答

1

你需要使用

document.getElementById('password').value 

document.getElementById('password2').value 

另外,你的邏輯是錯誤的。如果密碼不匹配,第一個條件塊將被觸發。

編輯

看來你是使用jQuery,所以只需使用

$('#password').val() 

獲取字段的值。

您還應設置使用jQuery(可能還有)與html()方法

+0

#password口令。 ;) – nickf 2009-05-27 00:47:45

+0

只需點擊編輯!謝謝:) – alex 2009-05-27 00:48:36

0

在你的測試是否倒退。第一個分支是測試兩個密碼是否相等。

1

的問題是你如何訪問窗體對象的innerHTML。

post-form.password 

的JavaScript引擎,這是與此相同:

post - (form.password) 

而且,你必須給你的形式name屬性(不只是一個ID)來訪問它的方式。如果你想通過名稱來訪問它,你會使用這樣的:

document['post-form'].password 

或者由ID:

document.getElementById("post-form");