Winkel-Validierung - verhindern-button ng-click() als Formular ungültig ist
Habe ich eine eckige form als Teil eines single-page-App. Der "Weiter" - button bewegt ein Benutzer den nächsten Abschnitt der app, und hat eine ng-click. Ich möchte verhindern, dass diese ng-click passiert, wenn die Schaltfläche geklickt wird, und der form ungültig ist, aber ich nicht wollen, deaktivieren Sie die Schaltfläche Weiter.
Beispiel: Ein Benutzer kommt auf die Seite und sofort klickt auf die Schaltfläche Weiter, ohne ein Vorname. Die Fehlermeldung "geben Sie einen Vornamen ein" angezeigt wird und der user bleibt auf der Seite.
Wie kann ich dies tun? Hier ist der code:
<form name="form" novalidate >
<div ng-show="form.FirstName.$touched && form.FirstName.$error.required" class="errorMessage">
You must enter a first name
</div>
<div class="form-group">
<label for="firstName" class="form-label">First Name</label>
<input id="firstName" class="form-control" name="FirstName" ng-model="vm.user.firstName" required />
</div>
<div class="btn-group">
<button ng-click="vm.next()">Continue</button>
</div>
</form>
- Was ist deine controller-code?
- Mögliche Duplikate von AngularJS überprüfen, ob Formular ist gültig im controller
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fügen Sie einfach
form.$valid &&
vor dem Aufruf der Funktion:ng-show="tried && form.FirstName.$touched && form.FirstName.$error.required"
+ng-click="tried = true; form.$valid && vm.next()"
Entweder eine Schaltfläche ist deaktiviert, oder es ist klickbar, Sie können es nicht haben beide weisen.
Was Sie tun können, in Ihre controller für die vm.next() ist zu sagen:
vm.form.$invalid
.