Използвах валидиране на 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
са добавени методи.
Отговори:
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 в този отговор
2 за отговор № 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/
Аз също използвах на groups:
опция да групирате трите съобщения в едно, но можете да премахнете това, ако искате. Може също да искате да замените вашия персонализиран noSpace
метод с този, който вече е включен в additional-methods.js
файл, наречен nowhitespace
, но отново това зависи от вашите нужди.