javascript - How to reduce the form validation fields in AngularJS -
i have form 3 input fields. want use form other pages. therefore have reduced form. @ beginning i've defined view follows:
view:
<form class="form-horizontal" name="editform" novalidate> <div ng-repeat="elements in form"> <div class="form-group-sm has-feedback" ng-repeat="el in elements.items" ng-class="{ 'has-error' : haserror(editform), 'has-success' : hassuccess(editform) }"> <label class="control-label" for="{{el.id}}">{{el.label}}</label> <input type="{{el.fieldtype}}" class="form-control" placeholder="{{el.label}}" name="{{el.name}}" id="{{el.id}}" ng-model="selected[el.model]" ng-disabled="{{el.disabled}}" ng-pattern="el.pattern" ng-required="{{el.required}}" /> <p class="help-block" ng-show="editform.{{el.name}}.$error.required && editform.{{el.name}}.$touched">field required.</p> <p class="help-block" ng-show="editform.{{el.name}}.$error.pattern">thats pattern error message.</p> </div> </div> </form>
i want outsource error messages / validation in function. error messages in p-tag don't work.
i've tried in ctrl:
$scope.haserror = function (form) { return form.firstname.$invalid && form.firstname.$dirty; } $scope.hassuccess = function (form) { return form.firstname.$valid; }
that inputfield firstname. how can define dynamically fields (firstname, lastname, age)?
pass dynamic field name function:
ng-class="{ 'has-error' : haserror(editform, el.name), 'has-success' : hassuccess(editform, el.name) }"
and in controller use bracket notation access variable ngmodelcontroller:
$scope.haserror = function (form, name) { return form[name].$invalid && form[name].$dirty; }; $scope.hassuccess = function (form, name) { return form[name].$valid; };
Comments
Post a Comment