$.validator.setDefaults({
ignore: ':hidden, [readonly=readonly]'
});
Wartość domyślna parametru ignore
jest ":hidden"
. Poprzez zresetowanie wartości domyślnej za pomocą powyższego kodu, upewniasz się, że sprawdzanie poprawności jquery nadal nie działa na ukrytych elementach formularza, ale nie działa również na elementach, które mają atrybut readonly="readonly"
.
odpowiadać na komentarze
To brzmi dziwnie, może trzeba pisać kodu, aby uzyskać więcej pomocy. Jedną z rzeczy, można spróbować usunąć błędy sprawdzania poprawności jest ręcznie zweryfikować formę kiedy przełączyć readonly atrybut, coś takiego może:
$('#the_text_box').attr('readonly', 'readonly');
$.validator.setDefaults(':hidden');
$('form').valid();
$.validator.setDefaults(':hidden, [readonly=readonly]');
Można też zrobić coś podobnego podczas wstępnego ładowania strony, aby uniknąć chwili komunikaty o błędach sprawdzania poprawności.
$.validator.setDefaults(':hidden, [readonly=readonly]');
$('form').valid();
Dziękuję, wygląda na to, że robi się tak, że po sprawdzeniu poprawności strony klienta nie można odrzucić strony. W tym samym czasie, gdy ładuję stronę po raz pierwszy, weryfikatory natychmiast wyświetlają komunikaty, że są nieprawidłowe dla wszystkich pustych pól tylko do odczytu. Poza tym nie wydaje się, aby usunąć nieprawidłowe ustawienia, gdy zmienię pole na readonly za pomocą JavaScript. Czy brakuje mi czegoś, czy jest to tylko coś, co jest związane z implementacją mojego produktu? – Brisbe42
Wystarczy wyjaśnić, co się stało, to zadziałało dla mnie - do pewnego stopnia. Mój kod zawierał pewne ukryte funkcje, które powodowały, że strona zaczynała się od błędów sprawdzania poprawności już zastosowanych po stronie serwera. Skończyło się na tym, że musiałem pójść z rozwiązaniem, które miało na nie wpływ. Funkcja .valid() na elementach, w połączeniu z odwracaniem flagi readonly, działała dla sprawdzania poprawności po stronie klienta. Dzięki za pomoc! – Brisbe42