自定义表单验证指令以比较两个字段

燕子

我是一个有角度的新手,我在角度验证形式验证指令的工作方式上遇到了麻烦。

我知道我可以很容易地将指令添加到各个字段,但是我试图添加一个验证,该验证将比较两个表单字段(这两个字段都是模型的元素)。

这是一个表单框架:

<form name="edit_form" >
  <input name="min" type="number" ng-model="field.min"/>
  <input name="max" type="number" ng-model="field.max"/>
</form>

<div class="error" ng-show="edit_form.min.$dirty || edit_form.max.$dirty">
  <small class="error" ng-show="(what goes here?)">
    Min cannot exceed max
  </small>
</div>

简而言之,我想编写一条指令,并使用它来显示/隐藏small.errorifminmax都有值but min > max如何在一个指令中访问两个字段?指令是这项工作的正确工具吗?

w

剥皮猫的方法很多。

PLUNKER

app.directive('lowerThan', [
  function() {

    var link = function($scope, $element, $attrs, ctrl) {

      var validate = function(viewValue) {
        var comparisonModel = $attrs.lowerThan;

        if(!viewValue || !comparisonModel){
          // It's valid because we have nothing to compare against
          ctrl.$setValidity('lowerThan', true);
        }

        // It's valid if model is lower than the model we're comparing against
        ctrl.$setValidity('lowerThan', parseInt(viewValue, 10) < parseInt(comparisonModel, 10) );
        return viewValue;
      };

      ctrl.$parsers.unshift(validate);
      ctrl.$formatters.push(validate);

      $attrs.$observe('lowerThan', function(comparisonModel){
        // Whenever the comparison model changes we'll re-validate
        return validate(ctrl.$viewValue);
      });

    };

    return {
      require: 'ngModel',
      link: link
    };

  }
]);

用法:

<input name="min" type="number" ng-model="field.min" lower-than="{{field.max}}" />
<span class="error" ng-show="form.min.$error.lowerThan">
  Min cannot exceed max.
</span>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有相同验证但略有不同的两个字段的自定义验证

来自分类Dev

表单验证检查两个字段是否相等

来自分类Dev

同时验证两个字段

来自分类Dev

用于表单验证的自定义指令

来自分类Dev

Spring MVC-用于比较两个字段的验证

来自分类Dev

Spring MVC-用于比较两个字段的验证

来自分类Dev

如何在R图上使用两个字符的自定义符号?

来自分类Dev

比较Django queryset中的两个字段

来自分类Dev

比较yii2中的两个字段

来自分类Dev

如何使EqualityComparer与两个字段进行比较?

来自分类Dev

SQL如何比较两个字段?

来自分类Dev

SQL如何比较两个字段?

来自分类Dev

ADO Recordset筛选器比较两个字段

来自分类Dev

如何比较CheckConstraint中的两个字段

来自分类Dev

如何比较GQL中的两个字段

来自分类Dev

使用结构的两个字段比较qsort的功能?

来自分类Dev

比较mongodb中不同数组的两个字段

来自分类Dev

Tsql比较结果集中的两个字段

来自分类Dev

jQuery Validate:比较两个字段

来自分类Dev

Elastic Search Nest - 比较两个字段

来自分类Dev

两个字段之间的Rails存在条件验证

来自分类Dev

Joi验证两个字段的级联长度

来自分类Dev

在Angular验证器中链接两个字段

来自分类Dev

sqlalchemy验证器,用于两个字段

来自分类Dev

两个字段之间的Rails存在条件验证

来自分类Dev

在Laravel表单验证中为多个字段设置一条自定义消息

来自分类Dev

Play(Scala)Framework 2.4.x-表单验证可在字段级别验证同一表单中两个字段的相等性

来自分类Dev

AngularJS自定义指令-匹配多个字段?

来自分类Dev

用于自定义指令表单控件的AngularJS自定义表单验证器

Related 相关文章

热门标签

归档