2012-10-18 16 views
8

Uso componenti Symfony2 e Doctrine. La validazione funziona bene sul lato server (vincoli nelle Entità, ecc.) Ciò che voglio è convalidare il modulo (il mio custom costruito senza utilizzare il componente Symfony Form) tramite AJAX.Symfony2 Convalida AJAX

Esiste un modo per utilizzare il componente di convalida per convalidare i campi utilizzando AJAX?

Oppure dovrei usare il plugin di validazione jQuery? Che non sembra logico da allora ci saranno 2 diverse convalide utilizzate.

risposta

9

È possibile inviare il modulo serializzato tramite AJAX e restituire il modulo di reso dal lato server se contiene errori di convalida.

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

Sul lato server di verificare se si tratta di una richiesta AJAX e tornare response nel formato JSON.

+0

Grazie per la risposta @elnur. Questo è anche quello che penso, ma in questo modo ho bisogno di inviare il modulo per vedere gli errori. Lo voglio più come jQuery Validate plugin quando l'utente inizia a digitare per esempio e-mail e se non è corretto - viene visualizzato un messaggio. Ma non voglio fare una richiesta AJAX su ogni pressione di un tasto. –

+1

Poiché non ha senso inviare un elenco di tutte le e-mail registrate a JS sul primo caricamento della pagina, a causa della sicurezza e di altri problemi, dovrai comunque effettuare una richiesta AJAX. Dovresti semplicemente farlo non su ogni pressione di un tasto, ma dopo un timout o un evento 'change'. –

+0

Questo ha senso. Grazie! –

Problemi correlati