tylko wtedy, gdy używasz walidacji pośredniej, na przykład podczas pisania. Nie rób tego ... tylko z dobrym przemyśleniem lub z asynchroniczną walidacją, która polega na przykład na zapleczu.
Sam Vloeberghs
Odpowiedzi:
243
Jak widać na tym przykładzie Angulara , istnieje sposób na wyłączenie przycisku, dopóki cały formularz nie będzie prawidłowy:
jak możesz zweryfikować formularz, jeśli wyłączysz przycisk przesyłania (chyba że robisz to w przepływie, ale nie zawsze mi się to podoba)? Proszę mieć świadomość obaw związanych z UX tutaj ..
Sam Vloeberghs
6
[disabled] = „ngForm.invalid” można również sprawdzić
Chociaż ten kod może odpowiedzieć na pytanie, dostarczenie dodatkowego kontekstu dotyczącego tego, jak i / lub dlaczego rozwiązuje problem, poprawiłoby długoterminową wartość odpowiedzi.
Nic3500
5
Oto działający przykład (musisz mi zaufać, że na kontrolerze jest metoda submit () - wypisuje ona obiekt, na przykład {user: 'abc'}, jeśli w polu wejściowym wprowadzono 'abc':
nie używaj loginForm.form, po prostu użyj loginForm
loginForm.invalid działa tak samo jak! loginForm.valid
jeśli chcesz, aby funkcja przesyłania () otrzymywała poprawne wartości, element wejściowy powinien mieć atrybuty name i ngModel
Dzieje się tak również wtedy, gdy NIE używasz nowego FormBuildera, który polecam. W przypadku korzystania z FormBuilder sytuacja wygląda zupełnie inaczej.
Odpowiedzi:
Jak widać na tym przykładzie Angulara , istnieje sposób na wyłączenie przycisku, dopóki cały formularz nie będzie prawidłowy:
źródło
ng-form-modal
. poproś go o aktualizację dzięki.w Angular 2.xx , 4 , 5 ...
źródło
.html
.ts
źródło
Oto działający przykład (musisz mi zaufać, że na kontrolerze jest metoda submit () - wypisuje ona obiekt, na przykład {user: 'abc'}, jeśli w polu wejściowym wprowadzono 'abc':
Jak widzisz:
Dzieje się tak również wtedy, gdy NIE używasz nowego FormBuildera, który polecam. W przypadku korzystania z FormBuilder sytuacja wygląda zupełnie inaczej.
źródło
W Angular 2 walidacja formularza jest bardzo prosta
Oto przykład,
Sprawdź ten plunker w wersji demonstracyjnej
Więcej informacji
źródło
Ważne jest, aby umieścić słowo kluczowe „ wymagane ” w każdym z obowiązkowych znaczników wejściowych, aby zadziałało.
źródło
Może pomóc poniższy kod:
źródło
To zadziałało dla mnie.
.ts
.html
źródło