Validation Engine是一款基于Jquery的js表单验证插件。相对于之前的传统表单验证工具,其优点是自定义验证内容更广泛以及与AJAX的方便整合。

附件提供了该插件,解压密码为:im486,Js目录下为Validation Engine所需js文件(不包括jquery),css目录下的validationEngine.jquery.css为本插件样式文件,demo为示例文件(其下的demos目录为包括ajax验证等的各种示例)。

一般的使用方法如下:

第一步,在head中插入如下代码,具体路径取决于你放置文件的地方:

1 <link rel="stylesheet" href="/css/validationEngine.jquery.css">
2 <script src="/js/jquery.validationEngine.js"></script>

如果没有Jquery文件还需要添加一行<script src="/js/jquery.js"></script>。

当然,2个(或者3个)必须的文件必须要实际存在路径正确。

第二步,给需要使用表单验证的FORM增加ID。例如<form id="my_form">...</form>。(我们知道,很多时候对象的确定是通过ID来实现,没有ID,就会出现对象为空的情况,这个很好理解。)

第三步,给需要验证的表单元素(一般是INPUT)增加ID和验证类型。

1 <input id="my1" name="my1" type="text" class="validate[required]">

其中ID和CLASS是必须设置的(至于ID的唯一性依旧是必须的),忘记设置input表单元素的ID而导致插件无法正常运行的情况是最常见的错误。设置ID的目的依旧是确定对象,而class中则指定验证类型与方法(可以以空格方式单独设置样式,例如class="validate[required] my1"。)

第四步,在<head></head>中增加调用验证代码,一个比较标准的例子如下:

1 <script language="Javascript">
2 <!--
3 jQuery(document).ready(function(){
4     jQuery("#my_form").validationEngine('attach');
5 });
6 -->
7 </script>

jQuery("#my_form")中的my_form即是第二步中设置的表单ID。

表一:options 参数

名称 默认值 说明
validationEventTrigger "blur" 触发验证的事件,支持事件可参考 jQuery 的事件说明。
scroll true 屏幕自动滚动到第一个未通过验证的位置
focusFirstField true 验证未通过时,第一个未通过的控件是否设置为焦点
promptPosition "topRight" 验证提示信息的位置,可设置为:"topRight", "bottomLeft", "centerRight", "bottomRight"
autoPositionUpdate false 是否自动调整提示层的位置
bindMethod "bind" 验证事件的绑定方式,可设置为:bind, live
binded false 是否已经绑定其他事件,设为 true 将不进行验证。
inlineAjax false  
ajaxFormValidation false 使用 Ajax 验证表单
ajaxFormValidationURL false 设置 Ajax 验证的 URL,默认使用 form 的 action 属性
ajaxValidCache {}  
onAjaxFormComplete $.noop 表单提交,Ajax 验证完成后的行为(Function)
onBeforeAjaxFormValidation $.noop 表单提交验证规则通过后,Ajax 验证之前的行为(Function)
onValidationComplete false 表单提交验证完成时的行为(Function)可以得到两个参数:表单元素 和 验证结果(ture or false)
onSuccess false 实时验证所有项目都通过时,发生的行为(Function)
onFailure false 实时验证有未通过项目时,发生的行为(Function)PS:onSuccess 和 onFailure 在禁用实时验证时无效。
isOverflown false 表单是否在溢出滚动的元素内(即外部元素设置了 overflow:scroll)
overflownDIV "" 设置了溢出滚动的元素,格式为 jQuery 的选择器。
showArrow true  
isError false  
InvalidFields []  

表一所列举的内容即是第四步中的调用设置,一个更复杂的设置如下:

1 <script language="Javascript">
2 <!--
3 $("#my_form").validationEngine("attach",{
4     promptPosition:"centerRight",
5     scroll:false
6 });
7 -->
8 </script>

表2,验证类型及方法设置参数

名称 示例 说明
required validate[required] 必填项
optional validate[optional] 可选项。若不输入,不要求必填,若有输入,则验证其是否符合要求。
dateRange[name] validate[dateRange[grp1]] 验证日期范围
dateTimeRange[name] validate[dateTimeRange[grp1]] 验证日期及时间范围
minSize[int] validate[minSize[6]] 最少输入字符数
maxSize[int] validate[maxSize[20]] 最多输入字符数
groupRequired[name] validate[groupRequired[grp2]] 群组中至少输入一项
min[int] validate[min[1]] 最小值(数值的最小值)
max[int] validate[max[9999]] 最大值(数值的最大值)
past[date] validate[past[2012/12/20]] 日期必需在 date 或 date 的将来。格式为 YYYY/MM/DD、YYYY/M/D、YYYY-MM-DD、YYYY-M-D 或 now。
future[date] validate[future[now]] 日期必须在 data 或 date 的过去。
maxCheckbox[int] validate[maxCheckbox[2]] 最多选取的项目数(用于Checkbox)
minCheckbox validate[minCheckbox[2]] 最少选取的项目数(用于Checkbox)
equals validate[equals[id]] 当前控件值需与 id 这个控件的值相同
phone validate[custom[phone]] 验证电话号码
email validate[custom[email]] 验证 Email 地址
integer validate[custom[integer]] 验证整数
number validate[custom[number]] 验证数字
date validate[custom[date]] 验证日期
dateFormat validate[custom[dateFormat]] 验证日期格式
dateTimeFormat validate[custom[dateTimeFormat]] 验证日期及时间格式,格式为:YYYY/MM/DD hh:mm:ss AM|PM
ipv4 validate[custom[ipv4]] 验证 ipv4 地址
url validate[custom[url]] 验证 url 地址,需以 http://、https:// 或 ftp:// 开头
onlyNumberSp validate[custom[onlyNumberSp]] 只接受填数字和空格
onlyLetterSp validate[custom[onlyLetterSp]] 只接受填英文字母(大小写)和单引号(')
onlyLetterNumber validate[custom[onlyLetterNumber]] 只接受数字和英文字母
ajax validate[ajax[ajaxUserCallPhp]] 在验证规则中自定义

"ajaxUserCallPhp":{

"url":"phpajax/ajaxValidateFieldUser.php",

"extraData":"name=eric",

"alertTextOk":"* 此帐号名称可以使用",

"alertText":"* 此名称已被其他人使用",

"alertTextLoad":"* 正在确认帐号名称是否有其他人使用,请稍等。"

}

funcCall validate[funcCall[functionName]] 调用外部函数

表2给出的参数实际就是input元素验证规则的参数,一个完整的例子是:<input id="my1" name="my1" type="text"  class="validate[required,minSize[6],custom[onlyLetterNumber]]">,多个规则用英文的逗号分隔。该规则的3个部分分别是"必填"、"最短6个字符"、"只能为数字型"的意思,在表2中可以查到。Validation Engine可以验证邮箱、日期等格式,还可以设定必填项,这个在旧式的JS验证中是比较难于实现的——当然,在最新的浏览器中也可以无须插件而实现相同的功能,不过Validation Engine的强大之处正是可以兼容古董级的IE6以及其他旧式浏览器,让其实现高级表单验证的功能。

表三,Validation Engine的API 方法参数

名称 示例 说明
attach $("#form_id").validationEngine("attach"); 注册表单验证事件
detach $("#form_id").validationEngine("detach"); 取消注册表单验证事件
validate alert($("#form_id").validationEngine("validate")); 验证表单,返回结果 true 或 false
validateField alert($("#form_id").validationEngine("validateField","#element_id")); 验证单个控件,返回结果 true 或 false
showPrompt $("#element_id").validationEngine("showPrompt","提示内容","load"); 在该元素上创建一个提示内容,3 种状态:"pass", "error", "load"
hidePrompt $("#element_id").validationEngine("hidePrompt"); 隐藏该元素的提示内容
hide $("#form_id").validationEngine("hide"); 关闭表单中的提示
hideAll $("#form_id").validationEngine("hideAll"); 关闭页面上的所有提示
updatePromptsPosition $("#form_id").validationEngine("updatePromptsPosition") 更新提示层的位置

如果要实现ajax验证的话,需要添加一条规则:ajax[ajaxUserCallPhp]],例如<input id="my1" name="my1" type="text"  class="validate[required,minSize[6],custom[onlyLetterNumber]],ajax[ajaxUserCallPhp]]"&gt;,同时需要把phpajax目录放到合适的地方,如果phpajax目录放置在网站根目录下,而jquery.validationEngine.js放置在网站根目录下的js目录中的话,我们需要修改jquery.validationEngine.js中的"phpajax/"为"../phpajax/",否则会因为路径问题而无法调用ajax。

---------------------------------------------------------------------------------------------

2012年11月9日后记:本插件自带的ajax验证功能可能与其他ajax类页面刷新功能冲突,验证倒是可以,不过通不过也能提交。另外在Trident、Gecko、Presto等不同浏览器中——加入自带ajax验证的情况下,要么不能验证要么验证了通不过要么通过了提交不了。

转载于:https://my.oschina.net/weiqinxue/blog/725235

基于jQuery的表单验证插件Validation Engine相关推荐

  1. 基于jQuery的表单验证插件:jValidate

    网上基于jQuery的表单验证插件已有很多,但是这个轮子我还是继续做一个,因为这个表单验证插件是从我以前的个人JS框架移值过来的(我已慢慢投入jQuery的怀抱),并且它的验证规则书写方式也许会让你眼 ...

  2. jQuery Validate 表单验证插件----Validate简介,官方文档,官方下载地址

     一. jQuery Validate 插件的介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆 ...

  3. jQuery Validate 表单验证插件

    一. jQuery Validate 插件的介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑 ...

  4. JQuery.validationEngine表单验证插件

    一.说明 JQuery.validationEngine表单验证控件功能强大,自带了样式显示模式: 1.字符类型:非空验证.最大长度.最小长度.相等判断.数字和空格.数字和英文字母 2.数字类型:数字 ...

  5. jQuery Validate 表单验证插件----自定义校验结果样式

    一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二.引入依赖包 <script src="../../scripts/j ...

  6. jquery validate表单验证插件

    1 表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家.     1.点击表单项,显示帮助提示 2.鼠标离开表单项时,开始校验元素  3.鼠标离开后的正确.错误提示及鼠标移入时的帮 ...

  7. html中表单的校验的插件,功能强大的jquery.validate表单验证插件

    本文实例为大家分享了jquery.validate表单验证的使用方法,供大家参考,具体内容如下 1 .表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家. 1.点击表单项,显示帮助 ...

  8. jQuery Validate 表单验证插件----在class属性中添加校验规则进行简单的校验

    一.下载插件包. 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二.jQuery表单验证插件----添加class属性形式的校验 <!DOCTY ...

  9. 一款优秀的表单验证插件——validation插件

    特点: 内置验证规则:拥有必填.数字.email.url和信用卡号码等19类内置验证规则. 自定义验证规则:可以很方便的自定义验证规则. 简单强大的验证信息提示:默认了验证信息提示,并提供自定义覆盖默 ...

最新文章

  1. java saf_Java 8 Lambda表达式探险
  2. python函数第二次运行报错_Python学习笔记2-函数、高级特性
  3. 怪异的StackOverflowException异常
  4. git remote添加其他SSH端口
  5. jupyter notebook 更改工作目录
  6. C++ Primer 第三章 字符串、向量和数组
  7. centOS安装python
  8. 1507四舍五入c语言,EXCEL中四舍五入该怎么办
  9. MongoDB索引实战技巧
  10. 如何使用分析模型 — 3. 排比图,分析问题的同时给出答案
  11. linux 进程wait,linux 进程等待 wait 、 waitpid(示例代码)
  12. linux的常用的软件,Linux常用的软件和命令
  13. MySql 中的 int(11) 到底代表什么意思?
  14. Class.forName()、Class.forName().newInstance() 、New 三者区别!
  15. 2017-05-24
  16. 适应网络伦理关系要求的新的伦理观
  17. 多渠道下门店如何进行会员管理和会员营销
  18. 腐蚀rust服务器系统,腐蚀rust有哪些服务器命令 腐蚀rust服务器命令一览
  19. Android 使用高德SDK编写周边搜索定位
  20. Fasm汇编程序1.73,中文文档,第一章

热门文章

  1. 创业阶段如何找客户_怎么才叫创业 创业分为哪几个阶段?
  2. 一键安装office失败怎么办?office安装失败最有效解决办法
  3. vue 判断字符串是否是英文_JS判断字符串长度的5个方法(区分中文和英文)
  4. 南邮 OJ 1030 ACM程序设计之马拉松竞赛
  5. vue+element实现Select 选择器的远程搜索、滚动加载
  6. 运营推广-推广文章优化方法
  7. Android Studio科普篇——1.几个个性化设置
  8. Linux创建和删除软连接
  9. 【附源码】Java计算机毕业设计驾校预约管理系统(程序+LW+部署)
  10. 80后的蚁族尴尬:滞苦的一代