W angularjs, czy istnieje sposób, aby zaznaczyć formularz, który został już przekazany jako cofnąć z (tak, to traci ng-submitted
klasaforma Oznacz jako cofnąć z w angularjs
Tło:
W moim CSS, I „m z wykorzystaniem kątowych klas walidacyjnych wykonać następujące czynności.
- Początkowo wszystkie wejścia mają normalny kolor obramowania
- Jeżeli użytkownik zmieni wejścia mieć nieprawidłowe wartości określić kolor obramowania na czerwono.
- Jeśli użytkownik kliknie przycisk przesyłania, ustaw kolor obramowania wszystkich nieprawidłowych wejść na czerwony.
mi zrealizować to tak:
input.ng-dirty.ng-invalid, .ng-submitted .ng-invalid {
border-color: #F00;
}
który działa dobrze. Teraz mam formularz, który wysyła żądanie asynchroniczne, a jeśli serwer odpowiada statusem sukcesu, chcę wyczyścić formularz (i skutecznie zresetować go do stanu pierwotnego). Problem polega na tym, że po wyczyszczeniu formularza nadal ma on klasę .ng-submitted
, więc wszystkie wymagane pola mają czerwoną ramkę. Jednak chcę, aby wszyscy mieli normalną granicę.
Powinienem być w stanie zaznaczyć wszystkie pola jako nieskazitelne przy użyciu $setPristine()
, ale nie widzę żadnego sposobu, aby oznaczyć formularz jako odrzucony. Czy to możliwe, czy też muszę stworzyć i utrzymywać własną klasę do robienia tego?
myślę tylko 'forma $ setPristine();' jest potrzebne.. – PSL
Dzięki! Nie zdawałem sobie sprawy, że 'forma. $ SetPristine()' ustawia również '$ submitted' na 'false'. Nadal będę używał 'form. $ SetUntouched()', ponieważ formularz powinien być technicznie uważany za nietknięty. Jednak nie będę używał rzeczy '$ scope.user', ponieważ wygląda to tak, jak w przypadku przykładu, do którego się odwołujesz. –
Bez problemu. Wiedziałem, że '$ scope.use' jest nieistotne, ale nie chciałem uszkodzić integralności tego fragmentu. Cieszę się, że ci pomogło. –