我以成员数据修改的形式使用了jQuery验证。表单中有三个字段,即原始密码(passwordOrig
),新密码(password
)和密码确认(passwordSecond
)。我想确保用户输入所有或都不是。我如何使用jQuery做到这一点?
以下是我的想法:
$("#accountData").validate({
rules: {
passwordOrig: {checkPassword: true},
password: {validChars: true, noSpace: true, minlength: 5},
passwordSecond: {equalTo: "#password"},
...
}
message: {
...
}
在上文中,添加了checkPassword
,validChars
和noSpace
方法。
答案 0 :(得分: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
中已包含的方法,但这又取决于您的需求。
答案 1 :(得分: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
的好例子