2013-03-23 38 views
5

Tôi đang cố gắng làm việc với xác thực tùy chỉnh trong Jquery. Tất cả các phần mã hóa là đúng, nhưng tôi không nhận được nơi nó đi sai ... đây là một phần của mã. phương pháp xác nhậnPhương thức tùy chỉnh với plugin Xác thực 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> 

tùy chỉnh:

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

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

Không cần phải viết một phương pháp tùy chỉnh. Chỉ cần sử dụng quy tắc 'equalTo'. Xem: http://docs.jquery.com/Plugins/Validation/Methods/equalTo#other – Sparky

Trả lời

1

u đã khởi tạo các plugin xác nhận một cách chính xác? Khi tôi đặt html vào một số form và sau đó initialize the plugin, nó hoạt động như mong đợi.

<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

nơi tôi phải đặt $ ('# test'). Validate(); –

+0

Là mã nội tuyến trong cùng một tệp có biểu mẫu của bạn hoặc có tham chiếu đến tệp js bên ngoài. Và đặt nó bên trong '$ (tài liệu) .ready (function() { // Mã của bạn });' để chắc chắn rằng biểu mẫu được tải khi bạn gọi plugin. –

34

Mã của bạn đang làm việc. Bạn cũng phải gán quy tắc cho trường của mình khi bạn khởi tạo plugin bằng .validate().

DEMO làm việc: 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 
      } 
     } 
    }); 

}); 

TUY NHIÊN, bạn không cần phải viết một phương pháp tùy chỉnh cho chức năng này. Plugin jQuery Validate đã có một equalTo rule và đây là cách sử dụng nó.

DEMO làm việc: 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" 
      } 
     } 
    }); 

}); 
Các vấn đề liên quan