2013-02-18 5 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: { 
    ... 
    } 

В выше, checkPassword, validChars и noSpace добавлены методы.

+0

Также укажите HTML-форму для своей формы. – Sparky

ответ

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

Я попробовал ваше предложение, и оно работает. Большое спасибо. –

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

Большое спасибо. Ты решил мою проблему .. –

Смежные вопросы