[返回目录](index.html)#### [第三方手册](shouce_index.html "test") —— [jQuery formValidator手册](formvalidator.html "test")
PHPCMS V9中使用的表单验证框架为jQuery formValidator
项目地址:[请点击这里](http://www.cnblogs.com/wzmaodong/archive/2011/07/15/2106947.html)
##### 什么是jQuery formValidator?
jQuery formValidator表单验证插件是客户端表单验证插件。 在做B/S开发的时候,我们经常涉及到很多表单验证,例如新用户注册,填写个人资料,录入一些常规数据等等。在这之前,页面开发者(JavaScript开发者)需要编写大量的JavaScript来进行表单元素的校验,而这些校验在平时开发中不停的重复书写。 常见的校验如不能为空,必须满足长度要求,必须为数字,必须为Email等等。一般要判断的表单元素比较多,开发过程就显得枯燥无味——重复的代码不断重复,而且可能还要兼容多种浏览器,更多的考虑因素使人头疼不已。由于每个要校验的页面虽然逻辑基本相同,但是在大多数情况下,出于种种原因,开发者宁愿再编写一套JS文件,为了便于管理。 jQuery formValidator表单插件致力于改善这一过程。你只关心业务逻辑,而无需关系实现过程,只需简单的配置,无需写代码就能实现表单的检验。它包括常规检验功能和可扩展校验功能。针对每个表单元素你只需要写一行配置信息就能完成校验。而这些配置信息无需写入表单元素,实现了js代码和html代码的分离。这样做的好处,使B/S开发过程中,分工更加明确,页面设计着只需关心他的页面(设计的时候不必担心把脚本弄坏了),javascript开发者只需关心脚本的开发。 而插件本身包含的校验方式可以有无数种,只要你扩展正则表达式和函数。本插件于同类校验插件最大的区别:校验功能可以扩展;实现了校验代码于html代码的完全分离;你只需写一行配置信息就能完成一个表单元素的所有校验。插件本身提供了很多回调函数,使调用者能最大限度的发挥自己的想象能力来完成自己的业务需求。 在同一个页面你可以拥有很多个校验组,你只需在提交的按钮那里调用 return jQuery.formValidator.pageIsValid('校验组号') 来完成多个组的校验,互不干扰。 插件具备跨浏览器的能力。目前在ie和ff两种浏览器下调试通过,你不用再考虑在多浏览器下如何兼容,jQuery formValidator帮你做到了这些。
##### jQuery formValidator文件在PHPCMS V9中放置在哪里?
web目录\\statics\\js\\formvalidator.js
web目录\\statics\\js\\formvalidatorregex.js
##### 如何在v9中加载jQuery formValidator?
```
<pre class="brush:xml">
```
##### jQuery formValidator插件的API帮助
目前支持5种大的校验方式,分别是:inputValidator(针对input、textarea、select控件的字符长度、值范围、选择个数的控制)、compareValidator(提供2个对象的比较,目前可以比较字符串和数值型)、ajaxValidator(通过ajax到服务器上做数据校验)、regexValidator(提供可扩展的正则表达式库) 、functionValidator (提供可扩展函数库来做校验)
每种格式支持的控件类型如下:
inputtextareaselect校验方式textradiocheckboxfilepasswordtextareaselect-oneinputValidator√√√√√√√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输入正确后的提示"输入正确" 当你焦点离开控件的时候,如果输入正确将出现该提示。为空者不显示tipid显示错误的容器ID表单ID+"Tip" 如果不自动构建提示层,表示提示成的ID号
如果自动构建提示层,表示提示层相对的目标控件tipcss自动构建的提示层的样式"left":"10px",
"top":"1px",
"height":"20px",
"width":"250px" 主要用于定位自动构建的提示层forcevalid强制输入的值必须有效true√是否把一个全角字符当做2个长度的参数defaultvalue默认值null√所有input和select表单。如果你不设置就保持原值,一旦设置就设为默认值。inputValidator:
属性属性名称默认值详细解释type比较类型"size"(对select无效)
"size":表示比较长度 ,默认值
"number":数值型比较
"string":字符型比较
"date":短日期类型
"datetime":长日期类型min最小长度/值0默认数值型。如果进行字符比较,请收入字符型
对select-one而言inputValidator里的参数min和max表示选择的索引号范围
对select-multiple而言inputValidator里的参数min和max表示选择的个数max最大长度/值99999999999同上onerror发生错误的提示"输入错误"为空者不显示。onerrormin比min属性小的提示null当用户输入的值比min属性小的时候的错误提示onerrormax比max属性大的提示null当用户输入的值比max属性大的时候的错误提示empty控件文本值是否允许两边为空两边都允许出现空默认值{leftempty:true,rightempty:true,emptyerror:null}
leftempty:表示左边是否允许为空
rightempty:表示右边是否允许为空
emptyerror:出现该错误的时候的提示,如果为null,则利用onerror属性来提示错误。compareValidator:
属性属性名称默认值详细解释desid要比较控件的ID""要跟源目标进行比较的目标IDoperateor比较符号"="一共有如下几种类型:=、!=、>、>=、<、<=datatype数据类型"string"目前只支持2种:"string"、"number","datetime","date"onerror发生错误的提示"输入错误"为空者不显示。regexValidator:
属性属性名称默认值详细解释regexp正则表达式""采用的是显式构造函数new RegExp("pattern"\[,"flags"\]); 由于Javascript 中'\\' 被用作转义字符,所以在使用显示构造函数构造实例对象的时候,需要使用'\\\\' 代替'\\' param附加参数"i"g:代表可以进行全局匹配。
i:代表不区分大小写匹配。
m:代表可以进行多行匹配。
可以任意组合,当然也可以不加参数 datatype数据类型"string""string":自己写的表达式,"enum":枚举名。具体请见demo3.htm
你可以自己修改、添加formValidatorRegex.js里的枚举项目名和表达式。onerror:发生错误的提示"输入错误"为空者不显示。ajaxValidator:几乎所有的属性跟$.ajax()的属性一样,请参考$.ajax()函数的帮助
属性属性名称默认值详细解释type 请求的类型"GET""POST" 或 "GET"url发送到的URL地址"" datatype返回的数据类型"html"xml、html、script、jsondata数据"" async是否以异步的方式发送true success当请求成功时调用的函数null processdata自动处理返回的数据为字符串true在默认的情况下,如果data选项传进的数据是一个对象而不是字符串,将会自动地被处理和转换成一个查询字符串complete当请求完成时调用的函数null beforesend当请求前时调用的函数null有个一个参数,根$.ajax里的beforeSend参数一样。buttons你点提交的按钮(组)jQuery对象null当你触发了ajax校验,buttons里对应的按钮(组)就会灰掉,一直等待服务器返回数据为止error当请求失败时调用的函数"请求失败"你可以自己定义这个错误,在error里自动打出。为空者不显示。functionValidator
属性属性名称默认值返回值的解释fun 外部函数名()
参数1:元素的值,
参数2:元素对象默认当作处理过程 true/false校验成功/失败字符串校验失败,返回值当作自定义错误无处理过程onerror发生错误的提示"输入错误"函数return false的时候,显示该错误信息公共函数:主要是设置全局参数和判断是否通过校验
函数名函数说明$.formValidator.initConfig参数:配置类型 属性默认值说明validatorgroup"1"你要针对哪个组进行配置formid""要自动注册pageIsValid函数的表单ID号alertmessagefalse是否弹出窗口autotipfalse是否自动构建提示层errorfocustrue发生错误的时候,第一个出错控件是否获得焦点forcevalidtrue是否一直输入正确为止才允许离开焦点widewordtrue是否把一个全角字符当做2个长度onsuccessnull该组校验通过后的回调函数,返回false,阻止表单的提交submitoncefalse校验通过后,是否灰掉所有的提交按钮onerrornull该组校验失败后的回调函数, 有两个参数
参数1一个校验没有通过的错误信息参数2一个校验没有通过的元素对象debugfalse是否处于调试模式。true:不提交表单$.formValidator.pageIsValid 一个参数: 不是配置类型 validatorgroup"1"你要针对哪个组进行验证$.formValidator.isOneValid一个参数: 当时设置验证的表单元素ID。
返回是否校验成功的信息。 $.formValidator.setFailStatefunction("tipid","显示的信息")
在showword模式下,如果你的额外校验没有通过,你可以通过它来设置成失败信息和状态 $.formValidator.getLengthfunction("表单元素id")
checkbox或radiobutton表示(同组)选择的个数。
对select-one,选择索引的值
对select-multiple,inputValidator里的参数min和max表示选择的个数
其它input表示的表示字符长度。 $.formValidator.retSetTipStatefunction(校验组号) 来把该组的提示内容恢复到onshow状态
[返回目录](index.html) 上海盛大网络发展有限公司 c 2006 - 2011 B2-20040053.
问题和建议请反馈至:http://bbs.phpcms.cn
- 首页
- 简介
- PHPCMS v9 安装环境要求
- 安装
- Linux 环境搭建推荐教程
- Windows 环境搭建推荐教程
- CentOS5下Nginx 环境推荐教程
- PC_webserver 安装说明
- PHPCMS V9 安装说明
- 使用
- 后台主界面
- 我的面板
- 修改个人信息
- 修改密码
- 生成首页
- 设置
- 相关设置
- 站点管理
- 发布点管理
- 基本设置
- 安全配置
- PHPSSO配置
- 邮箱配置
- connect
- 管理员设置
- 管理员管理
- 角色管理
- 模块
- 模块管理
- 模块管理
- 在线充值
- 短信平台
- 物流管理
- 外部数据导入
- 点评
- 表单向导
- 手机门户
- 广告
- 新闻心情
- 短消息
- 投票
- 友情链接
- 评论
- 公告
- 全站搜索
- 数据源
- 企业黄页
- 模块配置
- 分类管理
- 黄页模型管理
- 企业模板管理
- 信息管理
- 企业库管理
- 批量更新URL
- 内容
- 内容发布管理
- 管理内容
- 附件管理
- 专题
- 碎片管理
- 采集管理
- 评论管理
- 发布管理
- 批量更新栏目页
- 生成首页
- 批量更新URL
- 批量更新内容页
- 同步到发布点
- 内容相关设置
- 管理栏目
- 模型管理
- 类别管理
- 推荐位管理
- 用户
- 会员管理
- 会员管理
- 审核会员
- 会员模块配置
- 会员组管理
- 管理会员组
- 会员模型管理
- 管理会员模型
- 界面
- 模板风格
- 标签向导
- 扩展
- 附加字段管理
- 在线升级
- 信息模型设置
- 前台菜单管理
- 来源管理
- 木马查杀
- 更新全站缓存
- 后台操作日志
- 下载镜像管理
- IP禁止
- URL规则管理
- 数据库工具
- 菜单管理
- 敏感词管理
- Baibu/Google地图
- 关联链接
- 联动菜单
- 工作流
- phpsso
- 会员管理
- 应用管理
- 通信信息
- 积分兑换
- 管理员管理
- 系统设置
- 更新缓存
- 修改密码
- 应用
- 升级与转换
- 程序升级
- 离线升级
- 在线升级
- 程序转换
- phpcms2008 to v9
- phpcms2007 to v9
- DEDECMS 5.6 to v9
- 帝国cms 6.5 to v9
- PHP168 Sharp to v9
- 万能数据导入
- 整合文档
- 整合Discuz 7.0 - X1.5
- 整合Discuz X2
- 整合PHPWIND 8.7
- 标签使用
- PC标签使用说明
- PC标签保留参数
- 系统常量
- 功能模块
- 内容模块
- 评论模块
- 投票模块
- 公告模块
- 专题模块
- 会员模块
- 友情链接模块
- 黄页模块
- 工具箱
- json工具箱
- xml工具箱
- get标签
- 碎片工具箱
- 高级应用与部署
- Apache下Rewrite设置
- Sphinx全文索引教程
- Mysql开启全文索引
- Mysql优化
- 修改后台路径
- 数据库分离部署
- 万能字段应用
- 推荐位高级应用
- 主程序与web目录分离
- 第三方手册
- JQuery 手册
- artDialog 手册
- formValidator手册
- calendar手册
- CKEditor
- 二次开发
- 目录结构分析
- 数据库结构
- 二次开发流程
- 入口程序
- 系统类库与函数库调用
- 配置文件调用
- 函数扩展
- 控制器扩展技巧
- 常见问题
- 采集过滤规则无效
- 网站更换域名怎么办?
- 后台登陆提示验证码错误
- 应用间同步登陆问题
- 提示通信失败,用户登录失败
- 如何将静态文件生成到根目录
- 为什么添加的内容没有生成静态?