AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】


Posted in Javascript onNovember 03, 2016

本文实例讲述了AngularJS验证信息框架的封装插件用法。分享给大家供大家参考,具体如下:

AngularJS 的表单验证规则

angular.js 的表单验证规则有 required(必填项),type="number"(必须为数字),type="email"(必须为邮箱地址),ng-max(最大值),ng-min(最小值),ng-max-length(最大长度),ng-min-length(最小长度),ng-pattern(正则验证)等等,而且angular写自定的验证规则也很简单。

具体的验证细节参考官方文档:http://docs.angularjs.org/guide/forms

AngularJS 默认的验证是实时的,如果输入框输入值验证通过会在input上加入class ng-valid,如果验证不通过会自动添加 class ng-invalid,输入框输入了值之后自动加上了 class ng-dirty,这样系统可以很简单的通过修改 ng-invalid ng-valid ng-dirty 三个样式达到验证提示的目的。但是如果验证失败需要提示一段文字,那么只有通过编写模板来达到。

Angular.js 验证的缺点

1. 提示信息是实时显示的,有时候我们更想要通过表单提交触发验证

2. 写验证提示信息需要写大量模板:

<div>
    Size (integer 0 - 10):
    <input type="number" ng-model="size" name="size"
       min="0" max="10" integer />{{size}}<br />
    <span ng-show="form.size.$error.integer">This is not valid integer!</span>
    <span ng-show="form.size.$error.min || form.size.$error.max">
     The value must be in range 0 to 10!</span>
</div>

w5cValidator 扩展插件的出现

Github上的源码地址为:https://github.com/why520crazy/w5c-validator-angular

目前版本v1.0.0

使用步骤:

1. 在项目中引用 w5cValidator.js

2. 在表单form上添加一个指令 w5c-form-validate 和 w5c-submit 如下所示:

<form class="form-horizontal cw-form demo-form" role="form" w5c-submit="js_save_entity(form_validate)"
         w5c-form-validate="" novalidate name="form_validate">
<div class="form-group">


<label class="col-sm-2 control-label">邮箱</label>


<div class="col-sm-10">



 <input type="email" name="email" ng-model="entity.email" required="" class="form-control" placeholder="输入邮箱">
  </div>
</div>
<div class="form-group">
  <label class="col-sm-2 control-label">用户名</label>

  <div class="col-sm-10">
     <input required="" ng-pattern="/^[A-Za-z]{1}[0-9A-Za-z_]{1,19}$/" ng-model="entity.name" class="form-control" name="user_name" placeholder="输入用户名">
  </div>
</div>

...
</form>

w5c-submit 函数是表单验证成功后执行的事件,验证失败不会执行

3. 没了,使用就这么简单

w5cValidator 使用注意事项:

1. w5cValidator 默认的错误提示使用了bootstrap的样式和布局,使用到你的项目中需要修改默认的 show_error, remove_error 方法,可以是tip提示,可以是统一在某个地方显示等等

2. w5cValidator 可以设置光标移走input时是否显示错误提示,默认false

3. w5cValidator 自带了默认的提示信息,同时支持自定义验证规则提示信息

4. angular.js的所有验证信息都是保存在form表单中的,w5cValidator也是监控表单元素的属性来实现的,使用必须要设置form以及每个元素的name属性,否则错误信息就找不到对应的元素

5. 看下以下的代码你就能明白一切了:

w5cValidator.init({
     //blur_trig  : false,
     //show_error : function (elem, error_messages) {
     //
     //},
     //remove_error: function (elem) {
     //
     //}
});
w5cValidator.set_rules({
    user_name: {
       required: "输入的用户名不能为空",
       pattern : "用户名必须输入字母、数字、下划线,以字母开头"
    }
});

当然目前的 w5cValidator 还比较原始,NgNice的验证提示就是使用了w5cValidator

未来规划中的 w5cValidator 2.0

1. 现在只能设置全局的显示类型,将来要支持单个表单的配置项,整个项目偶尔会有提示信息不同的情况

2. 代码重构,以AngularJS的方式编写扩展

3. 添加一些 AngularJS没有的验证类型 如 repeat ,uniquecheck 等

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
JavaScript打字小游戏代码
Dec 26 Javascript
JavaScript中的稀疏数组与密集数组[译]
Sep 17 Javascript
javascript之Partial Application学习
Jan 10 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
Sep 19 Javascript
BootStrap整体框架之基础布局组件
Dec 15 Javascript
JS二叉树的简单实现方法示例
Apr 05 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
Nov 27 Javascript
JavaScript函数重载操作实例浅析
May 02 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
Jul 19 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
Ajax实现三级联动效果
Oct 05 Javascript
字节飞书面试promise.all实现示例
Jun 16 Javascript
基于vuejs+webpack的日期选择插件
May 21 #Javascript
Vue.js创建Calendar日历效果
Nov 03 #Javascript
AngularJS中transclude用法详解
Nov 03 #Javascript
基于Vue2的移动端开发环境搭建详解
Nov 03 #Javascript
AngularJS控制器之间的通信方式详解
Nov 03 #Javascript
最细致的vue.js基础语法 值得收藏!
Nov 03 #Javascript
AngularJS创建自定义指令的方法详解
Nov 03 #Javascript
You might like
使用无限生命期Session的方法
2006/10/09 PHP
php上传文件的增强函数
2010/07/21 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
2013/11/27 PHP
php共享内存段示例分享
2014/01/20 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
JavaScript中URL编码函数代码
2011/01/11 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
Jquery中map函数的用法
2016/06/03 Javascript
简单的JS轮播图代码
2016/07/18 Javascript
解析js如何获取css样式
2016/12/11 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
Python 内置函数complex详解
2016/10/23 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
python实现随机漫步方法和原理
2019/06/10 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
pygame实现贪吃蛇游戏(下)
2019/10/29 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
在python3.9下如何安装scrapy的方法
2021/02/03 Python
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
保时捷设计:Porsche Design
2019/03/30 全球购物
如何撰写一封出色的求职信
2014/04/27 职场文书
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
开展警示教育活动总结
2015/05/09 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书
创业计划书之个人工作室
2019/08/22 职场文书
幽默导游词应该怎么写?
2019/08/26 职场文书
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript