带有动态错误消息的angularJs表单验证

Praveen D

我想验证一种形式,其中每个输入每个输入可能会有很多错误消息。我想从javaScript编写这些错误消息。

的HTML

<input name="username" ng-model="user.username" type="text" placeholder="Username" required>
<div class="field-message" ng-messages="frm.username.$error" ng-if='frm.username.$dirty' ng-cloak>
     <div ng-message="required">Username is required</div>
</div>

JS

angular.module('DemoApp', ['ngMessages']);    
angular.bootstrap(document.getElementById('demoApp'), ['DemoApp']);

在上面的代码中,ng-message指令具有错误消息,如果输入无效,则会显示该错误消息。如果要验证的案例太多,并且每种案例都有不同的错误消息,则必须在html中添加多个ng消息以用于特定的输入控件。

我只想在html中输入标签,并且错误消息来自javascript。

我怎样才能做到这一点?

y

看到这个问题:如何向AngularJS表单添加自定义验证?

总结一下:

您可以使用ui-validate

或者

您可以像这样创建自定义验证(从原始问题的答案中复制):

app.directive('blacklist', function (){ 
   return {
      require: 'ngModel',
      link: function(scope, elem, attr, ngModel) {
          var blacklist = attr.blacklist.split(',');

          //For DOM -> model validation
          ngModel.$parsers.unshift(function(value) {
             var valid = blacklist.indexOf(value) === -1;
             ngModel.$setValidity('blacklist', valid);
             return valid ? value : undefined;
          });

          //For model -> DOM validation
          ngModel.$formatters.unshift(function(value) {
             ngModel.$setValidity('blacklist', blacklist.indexOf(value) === -1);
             return value;
          });
      }
   };
});

这是一些用法示例:

<form name="myForm" ng-submit="doSomething()">
   <input type="text" name="fruitName" ng-model="data.fruitName" blacklist="coconuts,bananas,pears" required/>
   <span ng-show="myForm.fruitName.$error.blacklist">
      The phrase "{{data.fruitName}}" is blacklisted</span>
   <span ng-show="myForm.fruitName.$error.required">required</span>
   <button type="submit" ng-disabled="myForm.$invalid">Submit</button>
</form>

编辑:根据OP的要求,仅打印相关错误:

Plunkr:http://plnkr.co/edit/KN0Oukb8uACvZjtGPUg4?p = preview

var app = angular.module('angularjs-starter', []);

app.controller('MainCtrl', function($scope) {
  $scope.doSomething = function() {
    alert('Submitted!');
  }

  $scope.getErrors = function() {
    if ($scope.myForm.fruitName.$error.required) {
      return 'This field is required';
    } else if ($scope.myForm.fruitName.$error.blacklist) {
      return 'The phrase ' + $scope.data.fruitName + ' is blacklisted';
    }
  }
});

app.directive('blacklist', function() {
  return {
    require: 'ngModel',
    link: function(scope, elem, attr, ngModel) {
      var blacklist = attr.blacklist.split(',');
      ngModel.$parsers.unshift(function(value) {
        ngModel.$setValidity('blacklist', blacklist.indexOf(value) === -1);
        return value;
      });
    }
  };
});
.invalid {
  color: red;
}
.ng-invalid {
  border-color: red;
}
<!DOCTYPE html>
<html ng-app="angularjs-starter">
    <head lang="en">
    <meta charset="utf-8">
    <title>Custom Plunker</title>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script>
  </head>
  
  <body ng-controller="MainCtrl">
    <form name="myForm" ng-submit="doSomething()">
       <div>Please <u>don't</u> type the words: coconuts, bananas or pears.</div>
       <input type="text" name="fruitName" ng-model="data.fruitName" blacklist="coconuts,bananas,pears" required/>
       <span class="invalid" ng-show="myForm.fruitName.$error">{{getErrors()}}</span>
       <br/>
       <button type="submit" ng-disabled="myForm.$invalid">Submit</button>
       <button type="button" ng-click="getErrors()">Get errors</button>
    </form>
  </body>
</html>

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery验证与动态错误消息

来自分类Dev

带有动态错误文本的 ASP.NET 验证器

来自分类Dev

带有验证的AngularJs动态表单生成

来自分类Dev

带有验证的AngularJs动态表单生成

来自分类Dev

使用angular ngMessage的带有错误消息的表单验证

来自分类Dev

如何在Yup异步验证中设置动态错误消息?

来自分类Dev

带有动态参数的Bean验证消息

来自分类Dev

带有动态参数的Bean验证消息

来自分类Dev

带有gettext的动态消息(AngularJS)

来自分类Dev

带有gettext的动态消息(AngularJS)

来自分类Dev

在angularjs表单验证中提交表单之前显示错误消息

来自分类Dev

在angularjs表单验证中提交表单之前显示错误消息

来自分类Dev

我创建了一个带有 angularjs 验证的表单,但没有显示任何错误

来自分类Dev

AngularJS自定义表单验证错误消息

来自分类Dev

AngularJS自定义表单验证错误消息

来自分类Dev

显示动态错误消息时,div表第2行无法对齐

来自分类Dev

向自定义正则表达式添加动态错误消息

来自分类Dev

没有提交表单的html5验证错误消息

来自分类Dev

在表单验证中同时显示所有错误消息

来自分类Dev

表单验证对所有字段显示相同的错误消息

来自分类Dev

带有提交和重置按钮的AngularJS表单验证

来自分类Dev

带有提交和重置按钮的AngularJS表单验证

来自分类Dev

带有提交/取消按钮的AngularJS验证表单

来自分类Dev

提交带有许多动态创建的输入的 AngularJS 表单

来自分类Dev

Spring没有显示动态生成的表单ID的验证错误

来自分类Dev

实施带有错误消息的数据验证

来自分类Dev

带有Capybara的Rails验证和错误消息

来自分类Dev

使用django验证带有引发错误的表单

来自分类Dev

TreeView动态错误的逻辑父异常

Related 相关文章

  1. 1

    jQuery验证与动态错误消息

  2. 2

    带有动态错误文本的 ASP.NET 验证器

  3. 3

    带有验证的AngularJs动态表单生成

  4. 4

    带有验证的AngularJs动态表单生成

  5. 5

    使用angular ngMessage的带有错误消息的表单验证

  6. 6

    如何在Yup异步验证中设置动态错误消息?

  7. 7

    带有动态参数的Bean验证消息

  8. 8

    带有动态参数的Bean验证消息

  9. 9

    带有gettext的动态消息(AngularJS)

  10. 10

    带有gettext的动态消息(AngularJS)

  11. 11

    在angularjs表单验证中提交表单之前显示错误消息

  12. 12

    在angularjs表单验证中提交表单之前显示错误消息

  13. 13

    我创建了一个带有 angularjs 验证的表单,但没有显示任何错误

  14. 14

    AngularJS自定义表单验证错误消息

  15. 15

    AngularJS自定义表单验证错误消息

  16. 16

    显示动态错误消息时,div表第2行无法对齐

  17. 17

    向自定义正则表达式添加动态错误消息

  18. 18

    没有提交表单的html5验证错误消息

  19. 19

    在表单验证中同时显示所有错误消息

  20. 20

    表单验证对所有字段显示相同的错误消息

  21. 21

    带有提交和重置按钮的AngularJS表单验证

  22. 22

    带有提交和重置按钮的AngularJS表单验证

  23. 23

    带有提交/取消按钮的AngularJS验证表单

  24. 24

    提交带有许多动态创建的输入的 AngularJS 表单

  25. 25

    Spring没有显示动态生成的表单ID的验证错误

  26. 26

    实施带有错误消息的数据验证

  27. 27

    带有Capybara的Rails验证和错误消息

  28. 28

    使用django验证带有引发错误的表单

  29. 29

    TreeView动态错误的逻辑父异常

热门标签

归档