angular-validation的使用方法

angular-validation

angular-validation是AngularJS 提供的表单验证插件,可以根据多种规则对表单进行有效性验证,并对非法数据进行警告。类似的插件还有 angular-w5c-validator、angular-validation-match

本文主要介绍angular-validation的使用方法
安装方法

npm install angular-validation     // Install with npm
bower install angular-validation   // Install with bower

使用方法

1、设置全局验证规则

将angular-validation\dist\angular-validation-rule.js 移到项目根目录下作为全局配置,因为angular-validation自带的配置信息很难满足我们的项目需要,我们往往需要自定义一些配置。

(function() {
  angular
    .module('your module')
    .config(['$validationProvider', function($validationProvider) {

例如我们可以在这里配置 不显示验证通过的message

//全局设置是否显示 success/error message
      $validationProvider.showSuccessMessage = false; // or true(default)
      $validationProvider.showErrorMessage = true; // or true(default)

$validationProvider 中主要有两个方法,setExpression(expression)——设置匹配规则,setDefaultMsg(message)——设置响应message。因此,我们可以在全局的配置文件中添加自定义的验证规则。
举个栗子:

      minlength: function(value, scope, element, attrs, param) {
        ...
      },
      maxlength: function(value, scope, element, attrs, param) {
        ...
      },
      //原文只提供了 minlength 和 maxlength
      //我们添加length规则,匹配value的长度是否等于param
      length: function(value, scope, element, attrs, param) {
        return value && value.length == param;
      }
      ...
      // defaultMsg 中设置对应的 message
      length: {
          error: '字段长度不符合要求',
          success: '填写正确!'
      }
 

2、在HTML中使用

angular-validation的作者考虑的非常全面,考虑到了各种场景的验证习惯,详细的指令请参阅 API https://github.com/hueitan/angular-validation/blob/master/API.md,在此只介绍几个指令使用中需要注意的地方:

validator="required,number" //validator 支持多个规则
valid-method="submit-only"  //设置进行验证的方式,submit-only只在提交时验证,默认为watch方式
<form name="newParamForm"> //angular-validation 检测的属性是name ,因此一定设置name

<!-- 一定要设置name="describeMessage" -->
<textarea id="describe" name="describeMessage"
          ng-model="newInventoryParamCtrl.param.describe"
          class="form-control" rows="3" message-id="describeMessage"
</textarea>
<span id="describeMessage"></span>

3、在js中使用

有些时候我们需要在controller中使用$validationProvider,使用的方法为:

.controller('index', ['$scope', '$injector', function($scope, $injector) {
      // Injector
      var $validationProvider = $injector.get('$validation');

      //自定义验证规则(页面上只能写maxlength = "固定数值",这里可以写根据入参bitLimit设置不同的长度验证)
      $validationProvider.setExpression({
          length: function(value, scope, element, attrs, param) {
            return value && value.length == vm.param.bitLimit;
          }
      });

      //最后再提供一个规范的表单提交方法

      $validationProvider.validate(form).success(function () {
        var restPromise = serviceResource.restCallService(URL,"ADD",vm.param);
        restPromise.then(function (data) {
          Notification.success("新建参数成功!");
          $uibModalInstance.close(data.content);

        }, function (reason) {
          Notification.error(reason.code.message);
        });
      }).error(function () {
        Notification.error("表单填写有误,请核对后再提交");
      });  

4、效果图

这里写图片描述

猜你喜欢

转载自blog.csdn.net/luyuehui520/article/details/88424725
今日推荐