2012-10-18 4 views
8

Używam komponentów Symfony2 i Doctrine. Sprawdzanie poprawności działa świetnie po stronie serwera (ograniczenia w elementach itp.) Potrzebuję sprawdzenia poprawności formularza (mój własny niestandardowy zbudowany bez użycia komponentu Symfony Form) za pośrednictwem AJAX.Sprawdzanie poprawności AJAX Symfony2

Czy istnieje sposób użycia składnika sprawdzania poprawności do sprawdzania poprawności pól przy użyciu AJAX?

Czy powinienem użyć wtyczki sprawdzania poprawności jQuery? Co wydaje się nielogiczne, od tego czasu będą stosowane 2 różne zatwierdzenia.

Odpowiedz

9

Możesz wysłać zserializowany formularz za pośrednictwem AJAX i zwrócić zrenderowany formularz ze strony serwera, jeśli zawiera błędy sprawdzania poprawności.

$.post($form.attr('action'), $form.serialize(), function (response) { 
    if (response.success) { 
     // do something on success 
    } else { 
     $form.replaceWith(response.form); 
    } 
}); 

Po stronie serwera można sprawdzić, czy jest to żądanie AJAX i powrotu response w formacie JSON.

+0

Dziękuję za odpowiedź @elnur. Tak też myślę, ale w ten sposób muszę przesłać formularz, aby zobaczyć błędy. Chcę go bardziej jak wtyczka jQuery Validate, gdy użytkownik zaczyna pisać, na przykład e-mail, a jeśli nie jest poprawny - wiadomość jest wyświetlana. Ale nie chcę tworzyć żądania AJAX dla każdego naciśnięcia klawisza. –

+1

Nie ma sensu wysyłać listy wszystkich zarejestrowanych wiadomości e-mail do JS przy ładowaniu pierwszej strony - z powodu zabezpieczeń i innych problemów - mimo to należy wykonać żądanie AJAX. Powinieneś to zrobić nie po każdym naciśnięciu klawisza, ale po jakimś wydarzeniu z określonym czasem ważności lub 'zmianą'. –

+0

To ma sens. Dziękuję Ci! –