2011-02-04 16 views
12

Używam wtyczki sprawdzania poprawności jQuery.jQuery Validation - Zastępowanie metody sprawdzania poprawności klucza

Mam nadpisane wymaganą regułę od kopalni zależy na jakimś niestandardowym stanie jak w następujących:

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

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

Gdy formularz jest weryfikowany jednak widzę, że "required" jest drukowany dwukrotnie dla każdego elementu oznaczającego funkcję nazywa dwa razy. Jak tylko zmienię nazwę metody na "myRequired" i dodaję następującą regułę klasy, funkcja zostanie wywołana tylko raz, tak jak powinna być.

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

Wygląda na to, że podstawowa wymagana metoda jest nadal nienaruszona i wywołana, nawet jeśli dodaję metodę o tej samej nazwie. Czy mimo to należy całkowicie nadpisać metodę reguły podstawowej?

+1

Który plugin Walidacja używasz. – Hussein

+0

Używam wtyczki jQuery Validation. –

+0

Tomki, linki są zawsze przydatne, istnieje wiele wtyczek "jQuery Validation". Jednak zakładam, że używasz tego? http://bassistance.de/jquery-plugins/jquery-plugin-validation/ – Blowsie

Odpowiedz

18

Nie zastępujesz go, ale dodajesz do niego inną metodę. Aby zastąpić go, spróbuj tego:

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

    return someCondition && value != null; 
} 
1

Można użyć $.extend aby to zrobić:

$.extend($.validator, { 
    required: function(value, element) { 
     console.log("required", element); 
     return someCondition && value != null; 
    } 
}) 
Powiązane problemy