AngularJS: Is there any way to determine which fields are making a form invalid?
Each input name
's validation information is exposed as property in form
's name in scope
.
HTML
<form name="someForm" action="/"> <input name="username" required /> <input name="password" type="password" required /></form>
JS
$scope.someForm.username.$valid// > false$scope.someForm.password.$error// > { required: true }
The exposed properties are $pristine
, $dirty
, $valid
, $invalid
, $error
.
If you want to iterate over the errors for some reason:
$scope.someForm.$error// > { required: [{$name: "username", $error: true /*...*/},// {$name: "password", /*..*/}] }
Each rule in error will be exposed in $error.
Here is a plunkr to play with http://plnkr.co/edit/zCircDauLfeMcMUSnYaO?p=preview
For checking which field of form is invalid
console.log($scope.FORM_NAME.$error.required);
this will output the array of invalid fields of the form
If you want to see which fields are messing up with your validation and you have jQuery to help you, just search for the "ng-invalid" class on the javascript console.
$('.ng-invalid');
It will list all DOM elements which failed validation for any reason.