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 相关文章推荐
9个javascript语法高亮插件 推荐
Jul 18 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
Oct 20 Javascript
基于jquery实现的省市区级联无ajax
Sep 24 Javascript
简单实用的反馈表单无刷新提交带验证
Nov 15 Javascript
JQuery实现table行折叠效果以JSON做数据源
May 26 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
Dec 17 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
Jun 01 Javascript
AngularJS入门教程之控制器详解
Jul 27 Javascript
WEB开发之注册页面验证码倒计时代码的实现
Dec 15 Javascript
详解a++和++a的区别
Aug 30 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
May 15 Javascript
vuex(vue状态管理)的特殊应用案例分享
Mar 03 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
快速配置PHPMyAdmin方法
2008/06/05 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
javascript 主动派发事件总结
2011/08/09 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
js获取元素外链样式的方法
2015/01/27 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
JavaScript函数详解
2015/02/27 Javascript
JQuery实现样式设置、追加、移除与切换的方法
2015/06/11 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
2015/07/09 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
2016/06/24 Javascript
JS中常用的正则表达式
2016/09/29 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
详解几十行代码实现一个vue的状态管理
2019/01/28 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
2020/10/19 Python
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
自我鉴定怎么写
2013/12/05 职场文书
财务会计专业求职信范文
2013/12/31 职场文书
模范教师事迹材料
2014/02/10 职场文书
致接力运动员广播稿
2014/02/17 职场文书
老公给老婆的保证书
2014/04/28 职场文书
安全生产月活动总结
2014/05/04 职场文书
应聘护士求职信
2014/07/21 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书