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操作JSON实例代码
Feb 09 Javascript
Javascript 面向对象 对象(Object)
May 13 Javascript
拉动滚动条加载数据的jquery代码
May 03 Javascript
鼠标经过tr时,改变tr当前背景颜色
Jan 13 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
Jan 26 Javascript
原生javascript实现DIV拖拽并计算重复面积
Jan 02 Javascript
JS实现3D图片旋转展示效果代码
Sep 22 Javascript
JS实现iframe自适应高度的方法示例
Jan 07 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
Aug 16 jQuery
VueJS事件处理器v-on的使用方法
Sep 27 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
Nov 29 Javascript
layui lay-verify form表单自定义验证规则详解
Sep 18 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新手上路(四)
2006/10/09 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
为原生js Array增加each方法
2012/04/07 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
原生js实现图片轮播特效
2015/12/18 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
webpack3之loader全解析
2017/10/26 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
CentOS中升级Python版本的方法详解
2017/07/10 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
2019/03/13 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
python如何实现视频转代码视频
2019/06/17 Python
pandas计数 value_counts()的使用
2019/06/24 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
2019/09/26 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
竟聘演讲稿范文
2013/12/31 职场文书
七年级生物教学反思
2014/01/30 职场文书
汉语言文学职业规划
2014/02/14 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python
Web应用开发TypeScript使用详解
2022/05/25 Javascript
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技