HTML:Programowo ustawić wszystkie pola formularza do NG-poruszył składania formularza
<div class="form-group"
ng-class="{ 'has-error' : form.firstName.$invalid && form.firstName.$touched }">
<label for="firstName"
class="control-label">
First Name
</label>
<input type="text"
name="firstName"
id="firstName"
ng-model="editableUser.firstName"
class="form-control"
required>
<span class="help-block"
ng-show="form.firstName.$error.required && form.firstName.$touched">
First Name is required
</span>
</div>
<input type="submit"
ng-click="submit()"
value="Submit"
class="btn btn-default">
próbuję dostać moją klasę „ma błędów” kopać w poszukiwaniu błędnych pól, gdy użytkownik kliknie złożyć.
byłoby Myślę, że można zrobić coś takiego:
$scope.submit = function() {
if ($scope.form.$invalid) {
angular.forEach($scope.form.$invalid, function(field) {
field.$setTouched();
});
alert("Form is invalid.");
}
};
Ale nie ma $setTouched
metoda https://docs.angularjs.org/api/ng/type/form.FormController
EDIT: Zrealizować $setTouched
istnieje, to w https://docs.angularjs.org/api/ng/type/ngModel.NgModelController
Co ma jedno z pól formularza wyglądać? Czy mógłbyś edytować swoje pytanie, dodając przykład? Interesuje mnie, dlaczego sprawdzasz również, czy $ jest dotknięte? –
co, jeśli zamiast tego używasz setDirty? –
@BenHeymink Dodany kod do wyjaśnienia. – Derek