2012-03-08 18 views
6

Załaduję formularz z właściwymi atrybutami dla jQuery za pośrednictwem wywołania AJAX, problem polega na tym, że jest on ładowany po przygotowaniu dokumentu, a dyskretna walidacja jQuery nie podnosi wymaganego sprawdzania poprawności. Czy ktoś może mi powiedzieć, jaką metodę uruchomię, aby ją ponownie zainicjować?Jak ponownie zainicjować jQuery unobstrusive validation?

Dzięki, Darren

+0

Czy możesz pokazać kod, którego używasz do * wypróbowania *, aby go zainicjować? –

+0

Czy znalazłeś jakieś rozwiązanie? Próbuję sprawdzić, czy istnieje funkcja reinit, ale wydaje się, że po skonfigurowaniu z .validate, tak naprawdę nie może być niezwiązana i utknąłeś z oryginalnymi ustawieniami ...:/ –

+1

@MykaEyl Just reinitialize it w kompletnej lub skutecznej metodzie, jak poniżej. – Darren

Odpowiedz

21

do analizowania atrybuty sprawdzania poprawności formularza po zwróceniu go do strony wymaganej do uruchomienia: $.validator.unobtrusive.parse('#yourFormSelector')

W mojej aplikacji umieściłem to wywołanie w obsłudze ajaxComplete, więc nie muszę wo Rujnuj już o tym. Mam to zafakturować każdy formularz na stronie i działało dobrze w produkcji przez dłuższy czas (nawet jeśli na stronie jest kilkaset formularzy).

$(document).ajaxComplete(function() { 
    $.validator.unobtrusive.parse('form'); 
}); 
0

Trzeba ponownie zainicjować go w zwrotnego Sukces Niezależnie od wybranej metody ajax używasz, używając tego samego połączenia używasz zainicjować walidacji

$(selector).load(formUrl, function(){ 

    /* form exists here, run code*/ 
    }) 
Powiązane problemy