ngVerify v1.5.0

a easy Angular Form Validation plugin.
简洁高效的__angular表单验证插件__

See how powerful it.
看看它有多强大

  • 动态校验

  • 自动关联提交按钮

  • 多种 tip 校验消息提示

  • 不只校验 dom 元素值,还可以校验 ngModel 数据模型

  • 支持任意类型表单元素,甚至可以校验非表单元素

  • 提供 type 类型校验模板,你几乎不需要定校验规则

  • 提供自定义规则

  • 支持第三方组件校验

Show

HOME - 首页 
DEMO - 示例

Getting Started

npm install ng-verify

require('angular');//在使用前,你需要引入angular require('ngVerify');//引入verify组件 var app = angular.module('APP',['ngVerify']);//注册组件

How to use

  1. 标记一个表单范围 verify-scope

  2. 标记需要验证的元素 ng-verify

  3. 绑定提交按钮 control

verify-scope

入口指令,规定组件所控制的表单范围

<form verify-scope>
...
</form>

tipStyle

defualt: 1 
设置整个表单的错误消息样式

  • 0 禁用tip提示

  • 1 气泡浮动提示,在元素右上角浮出

  • 2 气泡固定高度,紧接着元素另起一行

<form verify-scope="tipStyle: 2" >...</form>

ng-verify

元素指令,定义验证规则

defualt

只需要使用ng-verify,会根据type类型校验非空验证和类型的格式

<!-- 校验非空验证和邮箱格式 -->
<input type="email" ng-verify >

required

defualt: true 
false允许空值通过校验

<input type="number" ng-verify="required: false" >

length

min,max 
定制校验字符长度

<input type="text" ng-verify="{min:3,max:6}" >

pattern

自定义正则,这样会优先以你的正则进行校验

<input type="text" ng-verify="pattern:/a-zA-Z/" >

errmsg

自定义错误消息,会覆盖掉默认的提示。

<input type="text" ng-verify="{errmsg:'其实这里没有错,我是在逗你玩'}" >

option

defualt: 0 
select下拉菜单属性,指定的option表示选中会校验不通过

<select ng-verify="option:0" >
<option>请选择</option>
<option>1</option>
<option>2</option>
<option>3</option>
</select>

least

defualt: 1 
checkbox最少勾选数,指定至少勾选几项才会通过验证

<div>
<label >checkbox</label>
<!-- checkbox多选,请确保所有checkbox被一个容器包起 -->
<!-- 如果要用label修饰checkbox请统一所有都用 -->
<!-- 确保每组checkbox的name属性相同,ng-verify指令只需要在任意一个checkbox上 -->
<input type="checkbox" name="checkbox" > Captain America
<input type="checkbox" name="checkbox" > Iron Man
<input type="checkbox" name="checkbox" ng-verify="least:2"> Hulk
</div>

recheck

指定一个元素进行2次校验,接收参数为 #id 或 name

<input type="password" name="password-1" ng-verify>

<!-- 检测第二次输入的密码是否一致 -->
<input type="password" ng-verify="{recheck:'password-1'}">

control

绑定一个表单提交按钮, control:'formName'

<form name="myform" verify>
... <a ng-verify="{control:'myform'}" ></a> <!-- 表单内的按钮 1 --> <input type="submit" ng-verify /> <!-- 表单内的按钮 2 -->
</form> <button ng-verify="{control:'myform'}" >提交</button> <!--表单外的按钮-->

disabled

defualt: true 
设置 disabled:false 提交按钮在表单未校验通过时不会禁用,并且会自动绑定一个click事件,点击时标记所有错误表单。 
注意:a 标签是没有 disabled 属性的,所以请使用 button 或者 input 来做按钮。

<button ng-verify="disabled:false" >按钮</button>

tipStyle

defualt: form verify-scope 
同上,设置单个元素提示样式

API

依赖注入

//依赖注入ngVerify后,可以调用一些公共方法
app.controller('yourCtrl',function(ngVerify){
...
})

check

ngVerify.check('formName', call_back, draw) 
检测一个verify表单是否验证通过,并刷新一次提交按钮的状态

'formName'             String      //指定检测form的name值 (必须)
call_back Function //检测完成后的回调 (可选)
draw (default:true) Boolean //是否标记出未验证通过的元素 (可选)
//返回所有未验证通过的表单元素,并标记
ngVerify.check('formName',function (errEls) {
console.log(errEls);
}); //标记出未验证通过元素
ngVerify.check('formName'); //返回所有未验证通过的表单元素,不标记
ngVerify.check('formName',function (errEls) {
console.log(errEls);
},false);

checkElement

ngVerify.checkElement(elemet, draw) 
检测一个元素是否验证通过

element                id/name/DomObj  //参数 id 或 name 或一个原生 dom 对象
draw (default:true) Boolean //是否标记出未验证通过的元素 (可选)

setError

ngVerify.setError(element, errmsg) 
将一个表单元素强制标记为未验证通过,第二参数不传时取消标记。

  • element 需要标记的元素,可传入dom、id或者name,id需要带#

  • errmsg tip提示错误时显示的消息,其优先级高于其他错误消息

ngVerify.setError('#id','这里有错') //以id标记错误
ngVerify.setError('name') //以name取消标记错误

scope

ngVerify.scope() 
获取一个verify表单的$scope作用域

ngVerify.scope('formName')

type

设置表单元素type类型,目前支持的type类型:

  • email

  • number

  • phone

  • url

  • radio

  • checkbox

  • select

  • char (字母加下划线)

  • date/dates (yyyy-mm-dd || yyyy-mm ) (hh:mm || hh:mm:ss) 时间部分非必须

  • file

tips

  • 传入的参数字符串都必须是对象参数"{key1: value1, key2: value2}",可以不写大括号 { }

  • checkbox、radio组绑定验证最好绑在最后一个

  • errmsg参数通常不需要你设置

  • 表单范围内的按钮,只要type="submit"则不需要设置control参数

  • 带有 ngModel 的元素,其数据模型具有较高的校验优先级

  • 不支持form嵌套

Support

  • IE 9+

  • angular 1.x

ngVerify - 更高效的 angular 表单验证的更多相关文章

  1. Angular 表单验证类库 ngx-validator 1.0 正式发布

    背景介绍 之前写了一篇 <如何优雅的使用 Angular 表单验证>,结尾处介绍了统一验证反馈的类库  ngx-validator  ,由于这段时间一直在新模块做微前端以及相关业务组件库, ...

  2. 如何优雅的使用 Angular 表单验证

    随便说说,这一节可以跳过 去年参加 ngChine 2018 杭州开发者大会的时候记得有人问我: Worktile 是什么时候开始使用 Angular 的,我说是今年(2018年) 3 月份开始在新模 ...

  3. Angular表单验证

    novalidate   去掉html5自带的验证 ng-minlength    规定输入文本的最小长度 ng-maxlength    规定输入文本的最大长度 ng-submit  接收一个方法名 ...

  4. 简单的angular表单验证指令

    <html ng-app="myApp"> <head> <meta charset="UTF-8"> <title& ...

  5. angular表单验证实例----可用的代码

    前段时间,公司做一个单页面,就是一个表单验证,早开始在菜鸟教程上关注了angular,所以下派上用场了 angular里面对于表单验证,设置了很多指令. 也就是说不用自己写一些逻辑,直接绑定指令就行. ...

  6. 从浅入深剖析angular表单验证

    最近手上维护的组件剩下的BUG都是表单验证,而且公司的表单验证那块代码经历的几代人,里面的逻辑开始变得不清晰,而且代码结构不是很angular. 是很有必要深入了解表单验证. 入门之前,我觉得应该先了 ...

  7. angular 表单验证

    最近在用angular写表单验证时 , 不小心把ng-model全替换删掉了, 然后发现之前写的验证都失效, 在查阅资料和反复修改摸索后, 发现angular中的表单验证, 都是基于ng-model的 ...

  8. 简话Angular 05 Angular表单验证

    一句话: 可以使用所有html5表单验证功能,同时Angular还增强了部分验证,支持动态验证 1. 上源码 <div ng-controller="ExampleController ...

  9. Angular 表单验证 基础篇

    <div class="nav"> <h4>表单验证</h4> <form ng-app="myApp" name=& ...

随机推荐

  1. LR回放webservice脚本报错------------mmdrv.exe应用程序错误(未解决)

    1.录制完成webservice脚本如下: 2.回放脚本,报错: 3.网上查看了一些解决办法,但都是没有起到作用.

  2. 莫烦PyTorch学习笔记(六)——批处理

    1.要点 Torch 中提供了一种帮你整理你的数据结构的好东西, 叫做 DataLoader, 我们能用它来包装自己的数据, 进行批训练. 而且批训练可以有很多种途径. 2.DataLoader Da ...

  3. 群晖系统下btfs(占用5%)和ext4文件格式的硬盘占用和选择

    1个人感觉选择ext4就可以,毕竟重要数据会设置raid1 不重要的数据也不需要快照什么的 商用除外 对于一个4t的硬盘 实际容量3726G 使用ext4可用空间3666G,群晖 占用60G大概1.6 ...

  4. 13_数据的划分和介绍之sklearn数据集

    1.数据集是如何划分?训练数据和评估数据不能使用相同数据,不然自己测自己,会使得准确率虚高,在遇到陌生数据时,不够准确. 2.数据集的获取: 通过load或者fetch方法. 3.数据集进行分割: 训 ...

  5. 03jQuery对象初识(二)筛选器2

    1.下面的筛选都是非常常用的 <ul> <li id="l0">l0</li> <li>l1</li> <li&g ...

  6. rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法-转

    原文:http://raksmart.idcspy.com/781 在CentOS上的Canon LBP2900安装打印机驱动,中间遇到了一些问题,主要是安装rpm包出现的依赖问题,现在解决了,现在简 ...

  7. tp5.1 swoole 实现异步处理

    客户端请求:<?phpnamespace app\index\controller; class Index{ public function index() { $client = new \ ...

  8. iTerm2配色和去掉profile提示框

    效果: 配色方案代码地址: https://github.com/mbadolato/iTerm2-Color-Schemes 点击最右边的绿色区域,再点击  “import”, 打开刚下载解压好的文 ...

  9. Java开源诊断工具 Arthas 发布v3.1.0

    Arthas 自2018年9月份上线以来「传送门」,已收获近万个star,感谢开发者们的认可.此次Arthas 3.1.0版本的发布,不仅带来大家投票出来的新LOGO,还带来强大的新功能和更好的易用性 ...

  10. HZOI20190908模拟40 队长快跑,影魔,抛硬币 题解

    题面:https://www.cnblogs.com/Juve/articles/11487699.html 队长快跑: 权值线段树与dp yy的不错 #include<iostream> ...