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 相关文章推荐
jQuery 使用手册(六)
Sep 23 Javascript
js 禁止选择功能实现代码(兼容IE/Firefox)
Apr 23 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
Feb 11 Javascript
浅析JavaScript中的delete运算符
Nov 30 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
Sep 10 Javascript
js实现单击图片放大图片的方法
Feb 17 Javascript
基于jQuery实现点击弹出层实例代码
Jan 01 Javascript
jQuery实现根据生日计算年龄 星座 生肖
Nov 23 Javascript
JS获取年月日时分秒的方法分析
Nov 28 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
Apr 08 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
Aug 31 Javascript
React 条件渲染最佳实践小结(7种)
Sep 27 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
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
PHP中“简单工厂模式”实例代码讲解
2012/09/04 PHP
phpize的深入理解
2013/06/03 PHP
PHP类的封装与继承详解
2015/09/29 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
用js+xml自动生成表格的东西
2006/12/21 Javascript
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
2010/09/17 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
Node.js实现数据推送
2016/04/14 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
2018/01/26 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
Python数学形态学实例分析
2019/09/06 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
python math模块的基本使用教程
2021/01/16 Python
Canvas与Image互相转换示例代码
2013/08/09 HTML / CSS
爱情保证书范文
2014/02/01 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
暑期培训随笔感言
2014/03/10 职场文书
国旗下的演讲稿
2014/05/08 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
银行职员工作失误检讨书
2014/10/14 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang