`

最简单的表单验证框架

阅读更多

主要特征

  • 简洁的验证语法
  • 快速
  • 无需编写验证提示信息
  • 支持组合验证
  • Ajax支持
  • 基于prototype.js
  • 无侵入性
  • 支持国际化
  • 易于扩展
  • 基于标准的Html属性(class)添加验证,易于其它标准的jsp taglib集成

支持浏览器

  • IE 5.x 以上
  • Mozilla 1.4 以上
  • FireFox 0.9 以上
  • Opera 8.5 测试通过

helloworld示例

引用文件

<script src="prototype.js" type="text/javascript"></script>
<script src="validation_cn.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="style_min.css"/>
  • prototype.js是所有的基础
  • validation_cn.js真正的验证框架文件
  • 可以添加style_min.css中的样式声明,也可以把style_min.css中的样式声明引入到你的框架js文件中去.

表单验证

<!-- 为form增加required-validate class,标识需要验证form -->
<form id='helloworld' action="#" class='required-validate'>
	helloworld:</br>
	<!--通过class添加验证: required表示不能为空,min-length-15表示最小长度为15 -->
	<textarea name='content' class='required min-length-15'></textarea></br>
	<input type='submit' value='Submit'/> 
	<input type='reset' value='Reset'/>
</form>
  • 要是某个form中的元素被验证可以这样给声明的form中加一个class='required-validate'的属性,框架会在load是自动绑定所有要验证的域.
  • 在要检查的域中通过class属性来声明被检查域的限制条件,例如上面的class='required min-length-15'表示这是一个非空,并且最小长度是15的域,在编辑域失去焦点时,会自动检查,如果输入不满足上述条件,则产生错误提示.

验证效果

检查规则

验证表达式 描述 示例
required 非空域,全部空格也算空
validate-number 一个有效数
validate-digits 只能包含[0-9]任意个数字
validate-alpha 只能是字母[a-zA-Z]
validate-alphanum 只能是字母和数字的组合
validate-email 只能是有效的email
validate-url 只能是有效的url地址
validate-one-required 至少有一个被选中,例如一组checkbox, radiobutton,它们最好包含在一个div和span中
validate-integer 只能是整数,可以有正负号
validate-ip 有效的IP地址
min-length-$number 最小长度是$number (此处$some表示一个特定的值) 最小长度为8: min-length-8
max-length-$number 最大长度是$number 最大长度为8: max-length-8
max-value-$number 输入域的最大值是$number 最大值为8.1: max-value-8.1
min-value-$number 输入域的最小值是$number 最大值为-8.1: max-value--8.1
equals-$otherInputId 必须和某个input field相等,用于密码两次输入验证 equals-password
less-than-$otherInputId 小于某个input field less-than-otherInputId,多用于结束日期不能小于开始日期的需求
great-than-$otherInputId 大于某个input field less-than-otherInputId
validate-date-$dateFormat 只能是日期,$dateFormat为日期格式,$dateFormat的可选,默认格式为yyyy-MM-DD validate-date-yyyy年MM月dd日
validate-file-$type1-$type2-$typeX 验证文件输入域选择的文件类型只能为声明的$type1 – $typeX中的一种 validate-file-png-jpeg
float-range-$minValue-$maxValue 必须是$minValue到$maxValue的一个浮点数 1至20: float-range-1-20
int-range-$minValue-$maxValue 必须是$minValue到$maxValue的一个整数
length-range-$minLength-$maxLength 输入字符串的长度必须在$minLength到$maxLength之间
validate-pattern-$RegExp 通过自定义正则表达式$RegExp来验证输入域的正确性 vaidate-pattern-/a/gi
validate-ajax-$url 通过ajax来验证输入域,$url为ajax验证提交的地址,错误提示信息将由服务器端返回.
数据示例
<input name="username" value="badqiu"/>
,提交数据为:username=badqiu&what=username&value=badqiu
what为input的name,value为input的value
validate-ajax-http://localhost/valiate-email.jsp
validate-chinese 只能是中文(以下为中国的相关验证)
validate-phone 有效的电话
validate-mobile-phone 有效的手机号
validate-id-number 验证是否有效的身份证号码
validate-zip 验证邮政编码
validate-qq 验证QQ号码

编程式为表单增加验证(Validation选项)

  • 可以手工指定要验证那个form,在指定是可以给定一些选项
    <script type="text/javascript">
    	var valid = new Validation('form-id', {onSubmit:false});
             // do something ...
             var result = valid.validate();
    </script>

创建Valuedation是的参数说明

  • onSubmit – 是否绑定onSubmit函数, default - true
  • stopOnFirst – 是否在检查到第一个错误时就停止检查 default- false
  • immediate – 是否在被检测域失去焦点时就检查被检查域 default - false
  • focusOnError – 是否把焦点移动到发生错误的域上 default - true
  • useTitles – 是否使用提示 default - false
  • onFormValidate:当form被检测和的回调函数,有两个输入参数 arg[0]-检测form的结果true or false, arg[1]-form本身的id
  • onElementValidate:当没个element被检查后的回调函数,有两个输入参数 arg[0]-检测form的结果true or false, arg[1]-element本身的id

添加自己的Validator测试函数

增加Validator

/*参数说明
 * v: 为需要测试的值
 * elm: 为html input
 * args: 为有参数的验证表达式传递的参数,如min-length-10,则args[0]为10
 * metadata: 为Validator本身
*/
Validation.add(['max-value',function(v,elm,args,metadata) {
		return parseFloat(v) <= parseFloat(args[0]);
	},{depends : ['validate-number']}],
});
/*
 * 增加验证出错的提示信息
 */
Validator.messagesSourceCn = [
['max-value' , '最大值为%s'],
]

Validator的选项:

depends – 为validator的之间的内部依赖
ignoreEmptyValue – 表明validator是否忽略空值不进行测试

FAQs

  1. 我的网站现在使用的是UTF-8编码,怎么使用validation_cn.js显示中文会乱码?
    答:validation_cn.js默认是使用GBK编码,使用可以改变文件编码的编辑器以UTF-8编码方式再保存,如保存为validation_cn_UTF-8.js
  2. 国际化怎么办?
    答:动态修改Validator.messageSource即可
  3. 日期之间的比较怎么办,如结束日期要大于开始日期
    答:先使用validate-date验证输入的值是合法的日期,再加上"less-than"的比较即可
  4. select的验证
    答:将Please Select..的值使用一个空格填充即可
    <select id="test" name="test" class="required">
    	<option value=" ">Please Select..</option>
    	<option value="val1">Value 1</option>
    	<option value="val2">Value 2</option>
    </select>
  5. 在IE中提示"Unterminated string constant"或是"末结束的字符串常量"错误
    答: 是由于你网页的编码问题,validation_cn.js默认是GBK编码,请转换成与你的网页想适应的编码

附: EasyValidation3.0.zip

分享到:
评论

相关推荐

    最简单的表单验证框架发布

    增加一个helloworld的演示

    Pisx通用表单验证框架2.0

    这是目前国内开发的所有JS表单验证框架中最好的一个。理由如下:1、简单,只有一个JS文件,不需要其它相关JS支持。2集成AJAX验证支持。3、验证类型全面。4、极易扩展。 主要功能有: PISX通用表单验证具有以下一些...

    JSValidation-----强大而灵活的表单客户端验证框架

    它将常见的校验(目前支持13种)封装起来,并创造性的采用xml来存贮表单验证信息,使得表单的验证成为整个项目中最不重要的环节,开发者只需要定义几个xml标记,就可以创建出复杂的验证策略,而不用编写一行...

    JSValidation(demo+源码) html表单验证框架

    它将常见的校验(目前支持13种)封装起来,并创造性的采用xml来存贮表单验证信息,使得表单的验证成为整个项目中最不重要的环节,开发者只需要定义几个xml标记,就可以创建出复杂的验证策略,而不用编写一行...

    使用 jQuery 实现表单验证功能

    5.1.5 表单验证  表单作为 HTML 最重要的一个组成部分,几乎在每个网页上都有体现,例如用户提交信息、用户反馈信息和用户查询信息等,因此它是网站管理者与浏览者之间沟通的桥梁。在表单中,表单验证的作用也是...

    常用python框架盘点.docx

    在本文中,我们将以常用Python框架盘点为主题,介绍一些最受欢迎的Python框架。 1. Flask Flask是一个轻量级的Web框架,它可以帮助开发人员快速构建Web应用程序。Flask的设计理念是简单而灵活,它提供了一些基本的...

    【学习笔记】前端框架LayUI.pdf

    * 表单验证(Form):提供了强大的表单验证功能,帮助开发者快速构建表单应用程序。 * 日期选择器(LayDate):提供了丰富的日期选择器效果,开发者可以根据需要自由配置。 4. LayUI的使用 LayUI非常易于使用,...

    CodeIgniter:php敏捷开发框架web快速开发详解

    它不是 Ruby 语言中唯一的框架,但它一定是最有开发效率和最有名的。另一方面,如果你已经花了很大功夫学习 PHP 的话,那么从 Ruby 重新开始又要重头学起。 为 PHP 开发的框架有很多个(大约 40 个),CI 只是其中...

    基于springboot的后台管理系统基本框架.zip

    表单验证使用jQuery validate插件等等。 系统部署: 方式一: 使用mysql数据库,先建立一个空数据库base,最好编码使用utf-8字符集,不然会乱码。 把application.properties中的数据库连接信息修改成自己数据库的...

    精通JS脚本之ExtJS框架.part2.rar

    5.4.5 最简单的菜单栏 5.4.6 创建三级或多级菜单 5.4.7 具有选择框的菜单 第6章 页面元素与模板 6.1 构成用户界面的元素 6.2 获取页面元素 6.3 元素常见的使用方法 6.3.1 常见的“显示/隐藏”方法 6.3.2 ...

    Python的Flask框架中web表单的教程

    web表单是web应用中最基本的构建要素,我们将通过表单来实现用户发帖和应用登录功能。 完成本章内容你需要基于前面章节完成的微博应用代码,请确认这些代码已安装并能正常运行。 配置 Flask-WTF是WTForms项目的Flask...

    HG-Layui-UI框架

    HG-Layui-UI框架,是基于layui最新版UI搭建的一套...为快速开发减少重复代码量,框架内部admin.js中封装了常用的组件,包括弹窗提示、日期组件、表单监听、表单验证、数据表格组件、树形组件和request获取数据方法等。

    在Python的Flask中使用WTForms表单框架的基础教程

    安装 WTForms 最简单的方式是使用 easy_install 和 pip: easy_install WTForms # or pip install WTForms 你可以从 PyPI 手动 下载 WTForms 然后运行 python setup.py install . 如果你是那种喜欢这一切风险的人, ...

    simple-validation:对表单或您能想到的任何事物进行验证的简单、快速、美观的方式

    最简单的方法是使用并将其添加到 composer.json 需求部分。 { " require " : { " frangeris/simple-validation " : " dev-master " } } 它符合 PSR-0,因此您也可以使用自己的自定义自动加载器。 用法 一般来说...

    我记录 内容管理系统 CMS源码

    1、提供了最常用的弹窗、表单验证、菜单等内容; 2、基本上“零js书写”,不需要js基础就能使用,上手非常容易; 3、和视图完全分离; 4、和 mvc 后端 controller 无缝集成。 wojilu editor 轻量级,在 mvc 中...

    Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法

    本文实例讲述了Zend Framework...通过Zend Framework手册找到了相关的使用说明…最简单的使用方式就是在控制器(Controller)里写一个现成的Action,这样..在这个控制器里就可以直接使用这个Action…代码可以如下: &lt;

    ssos-framework:ssos框架,记录平时使用的一些工具类,集成权限、数据权限、动态表单、自定义字段

    ssos框架,登入、验证、加密、权限的集合体新增加flowable工作流,以及破解modeler权限验证功能,模块分层架构基础-springboot、shiro、mybatis、flowable原则:为了最简单所以更简单ssos-framework--------flowable-...

    精通JS脚本之ExtJS框架.part1.rar

    5.4.5 最简单的菜单栏 5.4.6 创建三级或多级菜单 5.4.7 具有选择框的菜单 第6章 页面元素与模板 6.1 构成用户界面的元素 6.2 获取页面元素 6.3 元素常见的使用方法 6.3.1 常见的“显示/隐藏”方法 6.3.2 ...

    glowie:功能强大且轻量级PHP框架

    Glowie是一个PHP框架,旨在以最简单,快速,强大的方式轻松开发应用程序和动态网站。 特征 完整的MVC结构,组织简单 强大的数据库模型具有随时可用的数据处理功能 一套最安全的表单和数据验证工具 快速但强大的模板...

    js验证模型自我实现的具体方法

    市面上有很多表单验证的框架,教我们怎么验证表单的数据提交,说实话也真的很简单,但是我们会有一种感觉我们要是离开了这些框架的时候,我们有时候会束手无策,然后js验证写的很不规范,没有一套比较好的模式,那我...

Global site tag (gtag.js) - Google Analytics