angularjs,动态指令表单验证

时间:2015-02-05 08:44:31

标签: angularjs validation angularjs-directive

例如,我在表单中有一个select和一个输入(idcard)。 select确定输入的id-card-type(Tax id,Car license id),我想在输入中添加一个指令来自定义验证其值,验证方法因其类型而异(id-card-type )(由选择确定)。

我正在考虑动态更改指令以进行验证,或者一个指令对所有类型进行验证,但是如何将类型信息传递给指令。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以在没有指令的情况下执行此操作:



var myApp = angular.module('myApp',[]);

function MyCtrl($scope) {
  
  $scope.type = 'tax';
  
  $scope.yourForm = {};
  $scope.yourForm.inputType = {};
  $scope.yourForm.inputType.$valid = false;

  $scope.validate = function(type, text) {
    // return boolean based on your validation for the input string and type (tax or car)
    $scope.yourForm.inputType.$valid = (type === 'tax');
  }  
}

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp" ng-controller="MyCtrl">
  <form name="yourForm">
      <select ng-model="type" ng-change="validate(type, text)">
      <option>tax</option>
      <option>car</option>
    </select>
  
    <input type="text" name="inputType" ng-model="text">
    input valid: {{yourForm.inputType.$valid}}
  </form>
</div>
&#13;
&#13;
&#13;

在我的示例中,选择'car'时输入验证为false。

当然,您可以将所有这些包装成指令