2014-08-27 2 views
1

Ниже моя форма, которая имеет пароль и подтвердить поле пароляequalTo проверки с JQuery Validate

<div class="form-group"> 
    <label class="control-label">password</label>    
    <input type="text" class="form-control" name="password" 
      data-validate="minlength[8]" 
       data-message-required="email is required" placeholder="password"> 
</div> 

<div class="form-group"> 
    <label class="control-label">confirm password</label>    
    <input type="text" class="form-control" name="password_confirm" 
     data-validate="minlength[8],equalTo[password]" 
      data-message-required="email is required" placeholder="confirm password"> 
</div> 

Ниже моя часть поля проверки.

if (params = rule.match(/(\w+)\[(.*?)\]/i)) { 
    if ($.inArray(params[1], ['minlength', 'equalTo']) != -1) { 
     opts['rules'][name][params[1]] = params[2]; 
     message = $field.data('message-' + params[1]); 
     if (message) { 
      opts['messages'][name][params[1]] = message; 
     } 
    } 
} 

The minlength[8], кажется, работает отлично, но когда я пытаюсь соответствовать моим password с подтверждающим паролем ее не работает. Я пробовал передавать атрибут имени тремя способами, но никто из них не работает.

equalTo[password] 
equalTo["password"] 
equalTo["#password"] 

Также может кто-нибудь сказать мне, что делает это регулярное выражение делать /(\w+)\[(.*?)\]/i)

ответ

1

Параметр внутри equalTo["#password"]#password является.

#password - это селектор jQuery, который соответствует элементу с id="password". Однако, я не вижу атрибута id на вашем поле password. Попробуйте добавить один ...

<input type="text" class="form-control" id="password" name="password" .... 

Цитата OP:

"И может кто-нибудь сказать мне, что делает это регулярное выражение делать /(\w+)\[(.*?)\]/i"

См : http://regexr.com/39d43

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