2013-05-25 244 views
-2

我想用jQuery來驗證我的兩個密碼字段。jQuery - 驗證密碼

我的代碼如下所示:

jQuery('#settingsForm').validate(
    rules : { 
     npassword : { 
     }, 
     pass_check : { 
      equalTo : '#npassword' 
     } 
    } 
}); 

這是輸入字段的HTML:

<label for='npassword'>New Password</label> 
<input type='password' class='span10 password_check' name='npassword' id='npassword' value='' placeholder='New Password'> 
<div class='separator'></div> 

<label for='pass_check'>Confirm New Password</label> 
<input type='password' class='span10' name='pass_check' id='pass_check' value='' placeholder='Confirm New Password'> 
<div class='separator'></div> 

雖然這並不做任何事情。我應該改變什麼?一般來說,我是jQuery和Javascript的新手。

在此先感謝。

+1

'equalTo:「#password''應該是'equalTo :'#npassword',因爲那是其他元素的ID。 – Matt

+0

您需要傳遞輸入名稱,而不是標籤名稱。 – JonathanRomer

+0

哦,當然。但它仍然不起作用。有任何想法嗎? – oliverbj

回答

1

您應該填寫npassword的配置,例如,通過使用required: true。在這裏看到:http://jsfiddle.net/JtTgM/

+0

謝謝!如何更改標準信息「請再次輸入相同的值」? – oliverbj

+0

你可以重寫'消息',你可以在這裏看到:http://jqueryvalidation.org/validate – dersvenhesse

0

1)你缺少一個左括號,{.validate(之後:

jQuery('#settingsForm').validate({ // <-- opening brace { was missing 

2)也許你想指定第一個密碼字段required規則。否則,當兩個字段都是空白時,它們都匹配並且表單有效。

npassword: { 
    required: true 
}, 

3)您可以覆蓋與messages選項的默認消息:

jQuery('#settingsForm').validate({ 
    rules: { 
     npassword: { 
      required: true 
     }, 
     pass_check: { 
      equalTo: '#npassword' 
     } 
    }, 
    messages: { 
     npassword: { 
      required: "this field is required" 
     }, 
     pass_check: { 
      equalTo: "the passwords must match" 
     } 
    } 
}); 

工作演示:http://jsfiddle.net/vsLWg/