AngularJS实现自动表单验证

学习笔记 2020/11/19 Angular

AngularJS的另外一种表单验证方式是自动验证,即通过directive来实现,除了AngularJS自带的directive,还需要用到angular-auto-validate这个第三方module。

有关angular-auto-validate:

  • 安装:npm i angular-auto-validate

  • 引用:

  • module依赖:var myApp = angular.module("app", ["jcs-autoValidate"]);

为了实现错误信息本地化,还需要angular-localize这个第三方module:

  • 安装:npm install angular-localize --save

  • module依赖:var myApp = angular.module("app", ["localize"]);

  • 引用:


此外,当点击提交表单按钮,需要禁用按钮并显示一种等待效果,需要用到angular-ladda这个第三方module:

  • 安装:bower install angular-ladda --save

  • module依赖:var myApp = angular.module("app", ["angular-ladda"]);

  • 引用:





页面如下:




 
 
 
 
 



 
 
  Form Validating Auto
 
 
          Name     
    Email     
    Username          Age          Sex      Please choose   Mail   Femail          Password                正在注册...   注册        
  {{formModel | json}}
  
 

先看提交按钮: 


 
 
 正在注册...
 注册
 
  • ladda属性值为bool值,true表示显示动态等待效果,false不显示动态等待效果,这里的submitting是scope中的一个属性

  • data-style="expand-right"表示在按钮的右侧显示动态等待效果

再拿表单中的Age字段来说: 


 Age
 

其中,min, max为AgularJS的directive,而ng-min-err-type是angular-auto-validate的directive。这里遵循的惯例是ng-AngularJS表单验证的directive名称-err-type,而tooYoung和tooOld的作用是什么,又是在哪里用上了呢?

是在module层面用上了,定义在了form_validation_auto.js文件中。 


var myApp1 = angular.module(\'myApp1\',[\'jcs-autoValidate\',\'localize\',\'angular-ladda\']);

myApp1.run(function(defaultErrorMessageResolver){
 defaultErrorMessageResolver.getErrorMessages().then(function(errorMessages){
  errorMessages[\'tooYoung\'] = \'年龄必须小于{0}\';
  errorMessages[\'tooOld\'] = \'年龄不能大于{0}\';
  errorMessages[\'badUsername\'] = \'用户名只能包含数字、字母或下划线\';
 });
});

myApp1.controller(\'myCtrl1\', function($scope, $http){
 $scope.formModel = {};
 $scope.submitting = false;

 $scope.onSubmit = function(){

  $scope.submitting = true;
  console.log(\'已提交\');
  console.log($scope.formModel);

  $http.post(\'url\',$scope.formModel)
   .success(function(data){
    console.log(\':)\');
    $scope.submitting = false;
   })
   .error(function(data){
    console.log(\':(\');
    $scope.submitting = false;
   });
 };
});

以上就是本文的全部内容,希望对AngularJS手动表单验证能够熟练操作。


本文地址:https://www.stayed.cn/item/289

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。