用户手册
目录
- jQuery formValidator是什么?
- jQuery formValidator能做什么,不能做什么?
- 什么情况下,我应该使用jQuery formValidator?
- 快速开始
- 使用jQuery formValidator必须加载的文件
- jQuery formValidator插件的API帮助
- 其他补遗
1. jQuery formValidator表单验证插件是什么?
[top]
jQuery formValidator表单验证插件是客户端表单验证插件。
在做B/S开发的时候,我们经常涉及到很多表单验证,例如新用户注册,填写个人资料,录入一些常规数据等等。在这之前,页面开发者(JavaScript开发者)需要编写大量的JavaScript来进行表单元素的校验,而这些校验在平时开发中不停的重复书写。
常见的校验如不能为空,必须满足长度要求,必须为数字,必须为Email等等。一般要判断的表单元素比较多,开发过程就显得枯燥无味——重复的代码不断重复,而且可能还要兼容多种浏览器,更多的考虑因素使人头疼不已。由于每个要校验的页面虽然逻辑基本相同,但是在大多数情况下,出于种种原因,开发者宁愿再编写一套JS文件,为了便于管理。
jQuery formValidator表单插件致力于改善这一过程。你只关心业务逻辑,而无需关系实现过程,只需简单的配置,无需写代码就能实现表单的检验。它包括常规检验功能和可扩展校验功能。针对每个表单元素你只需要写一行配置信息就能完成校验。而这些配置信息无需写入表单元素,实现了js代码和html代码的分离。这样做的好处,使B/S开发过程中,分工更加明确,页面设计着只需关心他的页面(设计的时候不必担心把脚本弄坏了),javascript开发者只需关心脚本的开发。
而插件本身包含的校验方式可以有无数种,只要你扩展正则表达式和函数。本插件于同类校验插件最大的区别:校验功能可以扩展;实现了校验代码于html代码的完全分离;你只需写一行配置信息就能完成一个表单元素的所有校验。插件本身提供了很多回调函数,使调用者能最大限度的发挥自己的想象能力来完成自己的业务需求。
在同一个页面你可以拥有很多个校验组,你只需在提交的按钮那里调用
return jQuery.formValidator.PageIsValid('校验组号') 来完成多个组的校验,互不干扰。
插件具备跨浏览器的能力。目前在ie和ff两种浏览器下调试通过,你不用再考虑在多浏览器下如何兼容,jQuery
formValidator帮你做到了这些。
2. jQuery formValidator能做什么,不能做什么?
[top]
jQuery formValidator目前能够完成客户端的14种基本的验证功能(还有很多功能没有罗列)如下:
- 2种错误提示模式:文字提示、窗口提示
- 呈现时的提示
- 可以为空,空时的提示
- 获得焦点提示
- 发生不同种错误,给出不同的提示
- 可以为空,不为空时要检验控制
- 长度控制、值比较,选择个数控制
- 单个对象的范围控制
- 2个对象比较控制,目前支持字符型和数值型
- 选择个数控制
- Ajax数据校验(与服务器段进行数据交互)
- 可扩展的正则表达式和函数(目前已经提供一个基本的扩展库)
- 同个页面,你可以划分多个校验组,每个组的校验都是互不影响的
- 单个对象或者整个校验组验证完成、或者出错,有额外的回调函数提供
jQuery formValidator不能做的:
- 目前对控件ID是动态产生的情况支持的不是很好。例如asp.net里的gridview控件,因为它的每行数据都是动态产生的,捕捉不到控件的ID。不过你硬要写,也是能实现的。
- 其他没有提到的,很希望你能告诉我们。
3. 什么情况下,我应该使用jQuery formValidator?
[top]
只要控件ID是一定的,即:控件ID是你自己指定的,这种情况你都可以调用。当然动态产生ID的,你也可以调用。jQuery formValidator可以帮助你减轻客户端校验编程的压力,让你有更多的精力投入对业务的关注中。
无论你是大型系统还是小型系统都适合调用本插件,本插件的压缩版本只有6K(可能本网页的一张图片就有几十K),个人认为可以忽略网页的加载时间。
4. 快速开始 [top] 你可以有两种方法快速开始(看到效果)
无论是那种方法,演示的例子中都有详细的步骤,以及对应的代码。
5. 使用插件必须加载的文件 [top]
//加载jQuery类库
<script src="jquery_last.js" type="text/javascript"></script>
//加载插件的样式库
<link type="text/css" rel="stylesheet" href="style/validator.css"></link>
//加载插件
<script src="formValidator.js" type="text/javascript"></script>
//加载扩展库
<script src="formValidatorRegex.js" type="text/javascript"></script>
6 jQuery formValidator插件的API帮助[top]
| 目前支持5种大的校验方式,分别是:InputValidator(针对input、textarea、select控件的字符长度、值范围、选择个数的控制)、CompareValidator(提供2个对象的比较,目前可以比较字符串和数值型)、AjaxValidator(通过ajax到服务器上做数据校验)、RegexValidator(提供可扩展的正则表达式库)
、FunctionValidator (提供可扩展函数库来做校验)
每种格式支持的控件类型如下:
| |
input |
textarea |
select |
| 校验方式 |
text |
radio |
checkbox |
file |
password |
textarea |
select-one |
| InputValidator |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
| CompareValidator |
√ |
|
|
√ |
√ |
√ |
|
| AjaxValidator |
√ |
|
|
√ |
√ |
√ |
√ |
| RegexValidator |
√ |
|
|
√ |
√ |
√ |
|
| FunctionValidator |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
如果你用了不支持的校验功能,插件将忽略这个校验功能。 |
插件目前提示错误,有两种模式:showword和showalert,即文字提示和窗口提示,下面的4大验证方式,针对showalert这种方式不是都必须的,有些配置是没有作用的
下面分别罗列全局初始化和5种校验方式公开的属性 |
| formValidator: |
用来做初始化的类型,必须先执行。("√"为showalert可用参数) |
| 属性 |
属性名称 |
默认值 |
showalert |
详细解释 |
| validatorGroup |
校验组 |
"1" |
√ |
一个页面的控件可以分成多个组,分开校验 |
| empty |
是否可以为空 |
false |
√ |
|
| automodify |
输入错误离开焦点的时候,自动修复错误 |
false |
√ |
先给出提示然后,自动修复,目前只支持text、file、textarea三种类型 |
| onempty |
空时候的提示 |
"输入内容为空" |
|
可以为空,为空时候的提示 |
| onshow |
显示时候的提示 |
"请输入内容" |
|
|
| onfocus |
获得焦点的提示 |
"请输入内容" |
|
|
| oncorrect |
输入正确后的提示 |
"输入正确" |
|
当你焦点离开控件的时候,如果输入正确将出现该提示 |
| onvalid |
校验通过后的回调函数 |
null |
√ |
参数1:对象本身
参数2:值
校验通过后,你还希望执行一些操作,你可以通过这个属性来执行。
返回值的意义:
| true/false |
校验成功/失败 |
| 字符串 |
校验失败,返回值当作自定义错误 |
| 无 |
处理过程 |
|
| onfocusevent |
获得焦点后要追加的回调函数 |
null |
√ |
参数1:对象本身 |
| onblurevent |
失去焦点后要追加的回调函数 |
null |
√ |
参数1:对象本身 |
| tipid |
显示错误的容器ID |
表单ID+"Tip" |
|
|
| defaultvalue |
默认值 |
null |
√ |
所有input和select表单。如果你不设置就保持原值,一旦设置就设为默认值。 |
|
| |
|
|
|
| InputValidator: |
|
| 属性 |
属性名称 |
默认值 |
详细解释 |
| type |
比较类型 |
"size" |
(对select无效)"size":表示比较长度 "value":比较值。 |
| min |
最小长度/值 |
0 |
对select-one而言InputValidator里的参数min和max表示选择的索引号范围
对select-more而言InputValidator里的参数min和max表示选择的个数 |
| max |
最大长度/值 |
99999999999999 |
同上 |
| onerror |
发生错误的提示 |
"输入错误" |
|
| defaultvalue |
默认值 |
null |
能满足预设默认值的需求 |
|
| |
|
|
|
| CompareValidator: |
|
| 属性 |
属性名称 |
默认值 |
详细解释 |
| desID |
要比较控件的ID |
"" |
要跟源目标进行比较的目标ID |
| operateor |
比较符号 |
"=" |
一共有如下几种类型:=、!=、>、>=、<、<= |
| datatype |
数据类型 |
"string" |
目前只支持2种:"string"、"number" |
| onerror |
发生错误的提示 |
"输入错误" |
|
|
| |
|
|
|
| RegexValidator: |
|
| 属性 |
属性名称 |
默认值 |
详细解释 |
| regexp |
正则表达式 |
"" |
采用的是显式构造函数new RegExp("pattern"[,"flags"]);
由于Javascript 中'\' 被用作转义字符,所以在使用显示构造函数构造实例对象的时候,需要使用'\\' 代替'\'
|
| param |
附加参数 |
"i" |
g:代表可以进行全局匹配。
i:代表不区分大小写匹配。
m:代表可以进行多行匹配。
可以任意组合,当然也可以不加参数 |
| datatype |
数据类型 |
"string" |
"string":自己写的表达式,"enum":枚举名。具体请见demo3.htm,你可以自己修改附加pageValidatorRegex.js里的枚举项目名和表达式。 |
| onerror: |
发生错误的提示 |
"输入错误" |
|
|
| |
|
|
|
| AjaxValidator: |
几乎所有的属性跟$.ajax()的属性一样,请参考$.ajax()函数的帮助 |
| 属性 |
属性名称 |
默认值 |
详细解释 |
| type |
请求的类型 |
"GET" |
"POST" 或 "GET" |
| url |
发送到的URL地址 |
"" |
|
| datatype |
返回的数据类型 |
"html" |
xml、html、script、json |
| data |
数据 |
"" |
|
| async |
是否以异步的方式发送 |
true |
|
| success |
当请求成功时调用的函数 |
null |
|
| processdata |
自动处理返回的数据为字符串 |
true |
在默认的情况下,如果data选项传进的数据是一个对象而不是字符串,将会自动地被处理和转换成一个查询字符串 |
| complete |
当请求完成时调用的函数 |
null |
|
| beforesend |
当请求前时调用的函数 |
null |
|
| buttons |
你点提交的按钮(组)jQuery对象 |
null |
当你触发了ajax校验,buttons里对应的按钮(组)就会灰掉,一直等待服务器返回数据为止 |
| error |
当请求失败时调用的函数 |
"请求失败" |
你可以自己定义这个错误,在error里自动打出 |
|
| |
| FunctionValidator |
| 属性 |
属性名称 |
默认值 |
返回值的解释 |
| fun |
外部函数名 |
默认当作处理过程 |
| true/false |
校验成功/失败 |
| 字符串 |
校验失败,返回值当作自定义错误 |
| 无 |
处理过程 |
|
|
| |
|
| 公共函数: |
主要是设置全局参数和判断是否通过校验 |
| 函数名 |
函数说明 |
| $.formValidator.initConfig |
参数:配置类型
| 属性 |
默认值 |
说明 |
| validatorGroup |
"1" |
你要针对哪个组进行配置 |
| alertMessage |
false |
是否弹出窗口 |
| onSuccess |
null |
该组校验通过后的回调函数,返回false,阻止表单的提交 |
| submitOnce |
false |
校验通过后,是否灰掉所有的提交按钮 |
| onError |
null |
该组校验失败后的回调函数, 有两个参数
| 第一个 |
一个校验没有通过的错误信息 |
| 第二个 |
一个校验没有通过的元素对象 |
|
|
| $.formValidator.PageIsValid |
一个参数: 不是配置类型
| validatorGroup |
"1" |
你要针对哪个组进行验证 |
|
| $.formValidator.IsOneValid |
一个参数: 当时设置验证的表单元素ID。
返回是否校验成功的信息。 |
| $.formValidator.SetFailState |
function("tipid","显示的信息")
在showword模式下,如果你的额外校验没有通过,你可以通过它来设置成失败信息和状态 |
| $.formValidator.GetLength |
function("表单元素id")
checkbox或radiobutton表示(同组)选择的个数。
对select-one,InputValidator里的参数min和max表示选择的索引号范围
对select-more,InputValidator里的参数min和max表示选择的个数
其它input表示的表示字符长度。 |
|
7 其他补遗 [top]
暂无
|