In AngularJS, c'è un modo per marcare una forma che è già stato presentato come non inviate (in modo che perde ng-submitted
classeMark forma non inviate in AngularJS
Background:?
Nel mio css, ho 'm utilizzando le classi di convalida angolari per realizzare il seguente:.
- Inizialmente, tutti gli ingressi hanno un normale colore del bordo
- Se l'utente modifica un ingresso per avere un valore non valido, impostare il colore del bordo al rosso.
- Se l'utente fa clic sul pulsante di invio, imposta il colore del bordo di tutti gli input non validi su rosso.
sto compiendo questo modo:
input.ng-dirty.ng-invalid, .ng-submitted .ng-invalid {
border-color: #F00;
}
che funziona bene. Ora ho un modulo che invia una richiesta asincrona, e se il server risponde con uno stato di successo, voglio cancellare il modulo (e resettarlo efficacemente al suo stato originale). Il problema è quando si cancella il modulo, esso ha ancora la classe .ng-submitted
, quindi tutti i campi richiesti hanno un bordo rosso. Comunque voglio che abbiano tutti un bordo normale.
Dovrei essere in grado di contrassegnare tutti i campi come pristine utilizzando $setPristine()
, ma non vedo alcun modo per contrassegnare il modulo come non inviato. È possibile o devo creare e mantenere la mia classe per farlo?
Penso solo '$ form setPristine();' è necessario.. – PSL
Grazie! Non mi ero reso conto che 'form. $ SetPristine()' avrebbe anche impostato '$ submit' su' false'. Userò ancora 'form. $ SetUntouched()', dato che anche il modulo dovrebbe essere considerato non trattato. Comunque non userò la cosa '$ scope.user' perché sembra che sia specifica dell'esempio a cui stai facendo riferimento. –
Nessun problema. Sapevo che '$ scope.use' è irrilevante, ma non volevo danneggiare l'integrità dello snippet. Sono contento che ti abbia aiutato. –