2013-03-23 2 views
5

Im пытается работать с пользовательской проверкой в ​​JQuery. Вся часть кодирования права, но я не понимаю, где это происходит неправильно ... вот часть кода.Пользовательский метод с плагином проверки jQuery

Password:<input type="password" id="pnameTxt" name="pnameTxt" placeholder="Enter Password" size=12 class='required'><br> 
Confirm Password:<input type="password" id="pnameTxt2" name="pnameTxt2" placeholder="Retype Password" size=15 class='required passwordCheck'><br> 

Пользовательский метод проверки:

$.validator.addMethod("passwordCheck",function (value,element){ 
      return value==$("#pnameTxt").val(); 

     }, 'Password and Confirm Password should be same'); 
+2

Нет необходимости писать специальный метод. Просто используйте правило 'equalTo'. См.: Http://docs.jquery.com/Plugins/Validation/Methods/equalTo#other – Sparky

ответ

1

настроит у плагиной проверки правильно? Когда я помещаю html в form, а затем initialize the plugin, он работает так, как ожидалось.

<form id="test"> 
Password:<input type="password" id="pnameTxt" name="pnameTxt" placeholder="Enter Password" size=12 class='required'><br> 
Confirm Password:<input type="password" id="pnameTxt2" name="pnameTxt2" placeholder="Retype Password" size=15 class='required passwordCheck'><br> 
<input type="submit"> 
</form> 
$.validator.addMethod("passwordCheck",function (value,element){ 
     return value==$("#pnameTxt").val(); 

    }, 'Password and Confirm Password should be same'); 

$('#test').validate(); 
+0

где я должен разместить $ ('# test'). Validate(); –

+0

Как встроенный код в том же файле, где находится ваша форма, или со ссылкой на внешний файл js. И разместите его внутри '$ (document) .ready (function() { // Ваш код });' чтобы быть уверенным, что форма загружается при вызове плагина. –

34

Ваш код работает. Вы также должны назначить правило для своего поля, когда вы инициализируете плагин с помощью .validate().

Работа DEMO: http://jsfiddle.net/KrLkF/

$(document).ready(function() { 

    $.validator.addMethod("passwordCheck", function (value, element) { 
     return value == $("#pnameTxt").val(); 
    }, 'Password and Confirm Password should be same'); 

    $('#myform').validate({ // initialize the plugin 
     rules: { 
      pnameTxt2: { 
       passwordCheck: true 
      } 
     } 
    }); 

}); 

ОДНАКО, вам не нужно писать специальный метод для этой функции. Плагин jQuery Validate уже имеет equalTo rule, и вот как его использовать.

Работа DEMO: http://jsfiddle.net/tdhHt/

$(document).ready(function() { 

    $('#myform').validate({ // initialize the plugin 
     rules: { 
      pnameTxt2: { 
       equalTo: "#pnameTxt" // using `id` of the other field 
      } 
     }, 
     messages: { 
      pnameTxt2: { 
       equalTo: "Password and Confirm Password should be same" 
      } 
     } 
    }); 

}); 
Смежные вопросы