so trying validate input of 1 item inside of ng-repeat. examples sake lets have 5 items (1,2,3,4,5) , want validate form if 4th item selected.
i have used ng-pattern before validate forms, not 1 had dropdown menu select item.name
i have included regex 4th item validated inside ng-pattern.
<div> <select name="name" ng-model="item.name" ng-options="item item in items" required></select> </div> <div> <input name="results" type="text" ng-model="item.results" ng-pattern="/^\d\d\d\/\d\d\d/" required> </div>
any suggestions correct way validate situation appreciated. have thought creating directive validate this, feels overly complicated solution since not use directive more once in app.
//////////////////////////////////////////////////
it wouldn't let me answer own question here answer figured out.
what ended having use ng-pattern , pass function.
<input name="results" type="text" ng-model="vital.results" ng-pattern="vitalregex()" required>
here controller code
$scope.item4regex = /^\d{2,3}\/\d{2,3}$/; $scope.itemregex = function() { if($scope.item && $scope.item.name === "fourth item") return $scope.item4regex; else return (/^$/); };
or else...
add ng-change directive on select dropdown calls controller method , controller method sets flag whether validate form or not.
eg.
<select ng-change="checkifformshouldbevalidated()" ng-model="item.name"></select> // inside controller $scope.checkiffromshouldbevalidated = function(){ if( $scope.item.name == 4th item ) $scope.shouldvalidate = true; else $scope.shouldvalidate = false; }; $scope.formsubmit = function(){ if(($scope.shouldvalidate && form.$valid) || (!$scope.shouldvalidate)){ // submit form } };
see if helps.
Comments
Post a Comment