2013-02-18 119 views
0

我在成员数据修改的形式使用jQuery验证。表格中有三个字段,即原始密码(passwordOrig),新密码(password)和密码确认(passwordSecond)。我想确保用户输入所有人都不是。我如何使用jQuery来做到这一点?jquery验证:密码更改和确认

以下是我想出了:

$("#accountData").validate({ 
    rules: { 
    passwordOrig: {checkPassword: true}, 
    password: {validChars: true, noSpace: true, minlength: 5},  
    passwordSecond: {equalTo: "#password"}, 
    ... 
    } 
    message: { 
    ... 
    } 

在上面,checkPasswordvalidCharsnoSpace添加方法。

+0

还请在表单中加入HTML。 – Sparky 2013-02-18 16:01:39

回答

1

您需要确保在一组给定字段的最小数量要么填写或留空 - additional-methods.js有满足这一要求的方法,称为skip_or_fill_minimum

要使用这个规则,你加个班在输入你感兴趣的

<input class="mygroup" name="fname" id="fname"> 
<input class="mygroup" name="sname" id="sname"> 
<input class="mygroup" name="other" id="other"> 

然后指定规则说你需要多少填补了,你的情况这三个,并且你已经使用了类,在这种情况下MYGROUP。

... 
rules : { 
fname : {skip_or_fill_minimum: [3,".mygroup"]}, 
sname : {skip_or_fill_minimum: [3,".mygroup"]}, 
other : {skip_or_fill_minimum: [3,".mygroup"]}, 
}, 
... 

有使用姐妹函数require_from_group in this answer

+0

我试过你的建议,它的工作原理。非常感谢。 – 2013-02-24 08:59:23

2

您将需要包括additional-methods.js文件,并使用名为skip_or_fill_minimum内含规则的一个很好的例子。

添加一个共同的class到相关input领域:

<form id="accountData"> 
    <input type="text" class="pw" name="passwordOrig" /> 
    <input type="text" class="pw" name="password" id="password" /> 
    <input type="text" class="pw" name="passwordSecond" /> 
    .... 
</form> 

skip_or_fill_minimum规则需要两个参数,在分组域的数量和上面创建的class名,skip_or_fill_minimum: [3,".pw"]

$(document).ready(function() { 

    $('#accountData').validate({ // initialize the plugin 
     rules: { 
      passwordOrig: { 
       checkPassword: true, 
       skip_or_fill_minimum: [3,".pw"] 
      }, 
      password: { 
       validChars: true, 
       noSpace: true, 
       minlength: 5, 
       skip_or_fill_minimum: [3,".pw"] 
      }, 
      passwordSecond: { 
       equalTo: "#password", 
       skip_or_fill_minimum: [3,".pw"] 
      } 
     }, 
     groups: { 
      justaname: "passwordOrig password passwordSecond" 
     } 
    }); 

}); 

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

我还使用the groups: option将三条消息分组为一个,但如果需要,可以将其删除。您可能还想将自定义的noSpace方法替换为additional-methods.js文件中名为nowhitespace的方法,但这又取决于您的需求。

+0

非常感谢。你解决了我的问题.. – 2014-10-04 16:40:39