ngVerify - 更高效的 angular 表单验证
ngVerify v1.5.0
a easy Angular Form Validation plugin.
简洁高效的__angular表单验证插件__
See how powerful it.
看看它有多强大
动态校验
自动关联提交按钮
多种 tip 校验消息提示
不只校验 dom 元素值,还可以校验 ngModel 数据模型
支持任意类型表单元素,甚至可以校验非表单元素
提供 type 类型校验模板,你几乎不需要定校验规则
提供自定义规则
支持第三方组件校验
Show
Getting Started
npm install ng-verify
require('angular');//在使用前,你需要引入angular
require('ngVerify');//引入verify组件
var app = angular.module('APP',['ngVerify']);//注册组件
How to use
标记一个表单范围 verify-scope
标记需要验证的元素 ng-verify
绑定提交按钮 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 表单验证的更多相关文章
- Angular 表单验证类库 ngx-validator 1.0 正式发布
背景介绍 之前写了一篇 <如何优雅的使用 Angular 表单验证>,结尾处介绍了统一验证反馈的类库 ngx-validator ,由于这段时间一直在新模块做微前端以及相关业务组件库, ...
- 如何优雅的使用 Angular 表单验证
随便说说,这一节可以跳过 去年参加 ngChine 2018 杭州开发者大会的时候记得有人问我: Worktile 是什么时候开始使用 Angular 的,我说是今年(2018年) 3 月份开始在新模 ...
- Angular表单验证
novalidate 去掉html5自带的验证 ng-minlength 规定输入文本的最小长度 ng-maxlength 规定输入文本的最大长度 ng-submit 接收一个方法名 ...
- 简单的angular表单验证指令
<html ng-app="myApp"> <head> <meta charset="UTF-8"> <title& ...
- angular表单验证实例----可用的代码
前段时间,公司做一个单页面,就是一个表单验证,早开始在菜鸟教程上关注了angular,所以下派上用场了 angular里面对于表单验证,设置了很多指令. 也就是说不用自己写一些逻辑,直接绑定指令就行. ...
- 从浅入深剖析angular表单验证
最近手上维护的组件剩下的BUG都是表单验证,而且公司的表单验证那块代码经历的几代人,里面的逻辑开始变得不清晰,而且代码结构不是很angular. 是很有必要深入了解表单验证. 入门之前,我觉得应该先了 ...
- angular 表单验证
最近在用angular写表单验证时 , 不小心把ng-model全替换删掉了, 然后发现之前写的验证都失效, 在查阅资料和反复修改摸索后, 发现angular中的表单验证, 都是基于ng-model的 ...
- 简话Angular 05 Angular表单验证
一句话: 可以使用所有html5表单验证功能,同时Angular还增强了部分验证,支持动态验证 1. 上源码 <div ng-controller="ExampleController ...
- Angular 表单验证 基础篇
<div class="nav"> <h4>表单验证</h4> <form ng-app="myApp" name=& ...
随机推荐
- [转].NET Framework 4.5 五个很棒的特性
自.NET 4.5发布已经过了差不多1年了.但是随着最近微软大多数的发布,与.NET开发者交流的问题显示,开发者仅知道一到两个特性,其他的特性仅仅停留在MSDN并以简单的文档形式存在着. 比如说,当你 ...
- leetcode-142-环形链表②
题目描述: 方法一:O(n) O(n) # Definition for singly-linked list. # class ListNode(object): # def __init__(se ...
- 【转载】linux进程及进程控制
Linux进程控制 程序是一组可执行的静态指令集,而进程(process)是一个执行中的程序实例.利用分时技术,在Linux操作系统上同时可以运行多个进程.分时技术的基本原理是把CPU的运行时间划 ...
- index方法用于数据集的强制索引操作
index方法为3.2.3版本新增,用于数据集的强制索引操作,例如: $Model->index('user')->select(); 对查询强制使用user索引,user必须是数据表实际 ...
- Spring简洁总结
Spring简洁总结 要的对象不是自己建的,而是IOC容器(XML文件)给的,我们通过getbean来调用. 依赖注入的话就是对象(bean)的成员的赋值不是我们手动完成,而是容器(XML文件)给我 ...
- Bash Specially-crafted Environment Variables Code Injection Vulnerability Analysis
http://www.cnblogs.com/LittleHann/p/3992778.html
- Java对象的存活判断
Java对象的回收是有依据的,普通的方式是计算法,比如被引用,对象计数器➕1,不被引用,➖1,回收的时候,发现是0则清除,但是不能解决两个对象互相被引用的情况,Java采用可达性分析,通过某个对象作为 ...
- GitHub for Visual Studio使用讲解
从VS2015起(应该是吧?),微软已经在VS中集成了GitHub,方便开发者对项目进行版本控制. 扩展包下载地址:https://aka.ms/ghfvs 其实VS2015的安装包中已经自带了这个扩 ...
- angular 基本树结构
HTML: http://www.ngnice.com/showcase/#/tree/basic <link rel="stylesheet" href="vie ...
- Luogu P1429 平面最近点对(加强版)(分治)
P1429 平面最近点对(加强版) 题意 题目描述 给定平面上\(n\)个点,找出其中的一对点的距离,使得在这\(n\)个点的所有点对中,该距离为所有点对中最小的. 输入输出格式 输入格式: 第一行: ...