2011-02-04 49 views
12

Tôi đang sử dụng trình cắm thêm Xác thực jQuery.Xác thực jQuery - Ghi đè phương thức xác thực lõi

Tôi đã ghi đè các quy tắc bắt buộc kể từ mỏ phụ thuộc vào một số điều kiện tùy chỉnh như trong sau:

$.validator.addMethod("required", function(value, element) { 
    console.log("required", element); 

    return someCondition && value != null; 
}, "This is is required."); 

Khi biểu mẫu được xác nhận tuy nhiên, tôi thấy rằng "required" được in hai lần cho mỗi phần tử có nghĩa là hàm được gọi hai lần. Ngay sau khi tôi thay đổi tên phương thức thành "myRequired" và thêm quy tắc lớp sau, hàm này được gọi chỉ một lần.

$.validator.addClassRules({ 
    required : { 
     myRequired: true 
    } 
}); 

Dường như phương pháp bắt buộc cốt lõi vẫn nguyên vẹn và được gọi ngay cả khi tôi thêm phương thức có cùng tên. Có anyway để hoàn toàn ghi đè lên các phương pháp quy tắc cốt lõi?

+1

nào xác nhận Plugin bạn đang sử dụng. – Hussein

+0

Tôi đang sử dụng plugin Xác thực jQuery. –

+0

Tom, liên kết luôn hữu ích, có nhiều plugin "Xác thực jQuery". Tuy nhiên tôi đoán bạn đang sử dụng cái này? http://bassistance.de/jquery-plugins/jquery-plugin-validation/ – Blowsie

Trả lời

18

Bạn không ghi đè nó, nhưng thêm phương thức khác vào đó. Để ghi đè nó, hãy thử này:

$.validator.methods.required = function(value, element, param) { 
    console.log("required", element); 

    return someCondition && value != null; 
} 
1

Bạn có thể sử dụng $.extend để làm điều này:

$.extend($.validator, { 
    required: function(value, element) { 
     console.log("required", element); 
     return someCondition && value != null; 
    } 
}) 
Các vấn đề liên quan