当前位置: 首页 > 编程笔记 >

angular 基于ng-messages的表单验证实例

毛宏达
2023-03-14
本文向大家介绍angular 基于ng-messages的表单验证实例,包括了angular 基于ng-messages的表单验证实例的使用技巧和注意事项,需要的朋友参考一下

最近在学习angular,那么今天也算个学习笔记吧!

html

 <div class="form-group" ng-class="{'has-error': myForm.myName.$touched && myForm.myName.$invalid}">
  <label class="col-xs-2 control-label">name</label>
  <div class="col-xs-6">
    <input type="text" class="form-control" name="myName" ng-model="formData.username"
        placeholder="2-10个中英文字符,aaa会重名,必填"
        name-check minlength="2" maxlength="10" required>
  </div>
  <div class="col-xs-4 form-control-static text-danger" ng-messages="myForm.myName.$error"
           ng-messages-include="demos/form/error.html" ng-show="myForm.myName.$touched">
  </div>
</div>

ng-messages="myForm.myName.$error" 给出错误类型(required, char, exist, minlength)

error.html

<span ng-message="required">必填</span>
<span ng-message="char">非法字符</span>
<span ng-message="exist">名称已存在</span>
<span ng-message="minlength">太短了</span>

directive name-check 利用ngModel 的$validators,& $asyncValidators 添加自定义验证

app.directive('nameCheck', nameCheck);

nameCheck.$inject = ['HttpService', '$q'];

function nameCheck(HttpService, $q){

  var NAME_REG = /^[a-zA-Z\u4e00-\u9fa5]+$/;

  return {
    restrict: 'A',
    require: 'ngModel',
    link:function($scope,element,attrs,ctrl){

      ctrl.$validators.char = function(modelValue, viewValue) {
        var value = modelValue || viewValue;
        if(!NAME_REG.test(value)){
          return false;
        }
        return true;
      };
      ctrl.$asyncValidators.exist = function(modelValue, viewValue){
        var value = modelValue || viewValue;
        var deferred = $q.defer();
        HttpService.get('api/users/' + value).then(function(res) {
          if(res.isExist){
            deferred.reject(false);

          }
          deferred.resolve(true);
        })

        return deferred.promise;
      }
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 我无法在现有答案中找到解决方案,因此我将其发布。 我有一个包含许多输入字段的表单,其中很多都是必需的。 表单中有按钮(超过2个),并使用ng-click绑定到控制器中的功能。 在执行功能之前,我需要先在ng-click上验证表单。 默认情况下,表单验证是在函数执行后进行的。如果未填写必填字段,则功能不应运行。 我制造了一个小提琴。https://jsfiddle.net/z1uyyqg

  • 本文向大家介绍基于jquery实现智能表单验证操作,包括了基于jquery实现智能表单验证操作的使用技巧和注意事项,需要的朋友参考一下 很多网站的注册模块都可以实现即时检查格式是否正确,这样极大的增强了用户体验,对开发非常有利。 先给大家展示下表单效果图,具体效果如下所示: 1.前台一开始用JQuery实现,先来上HTML标记: 2,是CSS代码: 3.编写JQUery代码前需要引入JQuery支

  • 本文向大家介绍详解Angular Reactive Form 表单验证,包括了详解Angular Reactive Form 表单验证的使用技巧和注意事项,需要的朋友参考一下 本文我们将介绍 Reactive Form 表单验证的相关知识,具体内容如下: 使用内建的验证规则 动态调整验证规则 自定义验证器 自定义验证器 (支持参数) 跨字段验证 基础知识 内建验证规则 Angular 提供了一些内

  • 问题内容: 我正在尝试在博客文章(尤其是ng禁用形式)的表单中使用角度表单验证。由于某些原因,我无法确定提交按钮没有被禁用,除非所有三个输入字段均有效,否则应该处于应有的状态。谢谢您的帮助。 这是我的博客模板 这是我的index.html 这是我的博客控制器 问题答案: 您在表单的每个字段中都缺少您。请记住,当你提到在当时任何形式的字段创建表单名对象中的额外的对象与特定的属性,然后考虑而表单验证一

  • 本文向大家介绍jQuery基于正则表达式的表单验证功能示例,包括了jQuery基于正则表达式的表单验证功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery基于正则表达式的表单验证功能。分享给大家供大家参考,具体如下: 附:常用的js验证函数: 网站首页表单js: 正则表达式特殊字符的过滤: PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用: JavaScri

  • 我正在Spring Boot应用程序中学习Spring Security性,我试图了解默认情况下使用Spring Security性的身份验证方式。我知道Spring Security默认情况下使用基于表单的身份验证,但我使用基本身份验证对Postman进行了测试,结果正常。 我有一个非常简单的Spring Boot应用程序。 Rest控制器: 我在pom中添加了Spring Security依赖