2013-05-25 242 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/