2013-03-23 17 views
5

Próbuję pracować z niestandardową weryfikacją w Jquery. Cała część kodu jest słuszna, ale nie dostaję się tam, gdzie dzieje się źle ... tutaj jest część kodu.Metoda niestandardowa z wtyczką jQuery Validation

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> 

niestandardowa metoda sprawdzania poprawności:

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

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

Nie trzeba napisać metodę niestandardową. Po prostu użyj zasady 'equalTo'. Zobacz: http://docs.jquery.com/Plugins/Validation/Methods/equalTo#other – Sparky

Odpowiedz

1

mają u zainicjowany plugin sprawdzania poprawności poprawnie? Po umieszczeniu html w form, a następnie initialize the plugin działa zgodnie z oczekiwaniami.

<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

gdzie muszę umieścić $ ("# test"). Validate(); –

+0

Jako kod wewnętrzny w tym samym pliku, w którym znajduje się formularz lub w odniesieniu do zewnętrznego pliku js. I umieść go wewnątrz '$ (document) .ready (function() { // Twój kod });' aby mieć pewność, że formularz zostanie załadowany po wywołaniu wtyczki. –

34

Twój kod działa. Musisz również przypisać regułę do swojego pola, gdy zainicjujesz wtyczkę za pomocą .validate().

DEMO Praca: 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 
      } 
     } 
    }); 

}); 

JEDNAK, nie trzeba napisać metodę niestandardową dla tej funkcji. Wtyczka jQuery Validate ma już numer equalTo rule, a oto jak go używać.

DEMO Praca: 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" 
      } 
     } 
    }); 

}); 
Powiązane problemy