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 相关文章推荐
QQ邮箱的一个文本编辑器代码
Mar 14 Javascript
javascript 日期时间 转换的方法
Feb 21 Javascript
jQuery实现HTML5 placeholder效果实例
Dec 09 Javascript
实现无刷新联动例子汇总
May 20 Javascript
Bootstrap开发实战之第一次接触Bootstrap
Jun 02 Javascript
js判断空对象的实例(超简单)
Jul 26 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
Aug 02 Javascript
javascript 开发之百度地图使用到的js函数整理
May 19 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
Oct 26 Javascript
JS实现的邮箱提示补全效果示例
Jan 30 Javascript
解决select2在bootstrap modal中不能正常使用的问题
Aug 09 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
Jul 24 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
正则表达式语法
2006/10/09 Javascript
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
php使用curl出现Expect:100-continue解决方法
2015/03/03 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
2017/04/07 PHP
利用php-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
js 匿名调用实现代码
2009/06/19 Javascript
学习ExtJS accordion布局
2009/10/08 Javascript
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
使用plupload自定义参数实现多文件上传
2016/07/19 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
详解Node 定时器
2018/02/26 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
原生js实现的金山打字小游戏(实例代码详解)
2020/03/16 Javascript
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
2019/05/05 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
2019/06/24 Python
python的faker库用法
2019/11/28 Python
Python selenium模块实现定位过程解析
2020/07/09 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
社会实践自我鉴定
2013/11/07 职场文书
汽车销售经理岗位职责
2014/06/09 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python