`
流浪鱼
  • 浏览: 1683172 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

"我佛山人"编写的表单验证类 Validator使用说明

    博客分类:
  • js
 
阅读更多

Validator表单验证类使用说明

表单的验证一直是网页设计者头痛的问题,我佛山人编写的表单验证类 Validator就是为解决这个问题而写的,旨在使设计者从纷繁复杂的表单验证中解放出来,把精力集中于网页的设计和功能上的改进上。Validator是基于JavaScript技术的伪静态类和对象的自定义属性,可以对网页中的表单项输入进行相应的验证,允许同一页面中同时验证多个表单,熟悉接口之后也可以对特定的表单项甚至仅仅是某个字符串进行验证。因为是伪静态类,所以在调用时不需要实例化,直接以"类名+.语法+属性或方法名"来调用。此外,Validator还提供3种不同的错误提示模式,以满足不同的需要。 

Validator目前可实现的验证类型有: 

1.是否为空;

2.中文字符;

3.双字节字符

4.英文;

5.数字;

6.整数;

7.实数;

8.Email地址;

9.使用HTTP协议的网址;

10.电话号码;

11.货币;

12.手机号码;

13.邮政编码;

14.身份证号码(1.05增强);

15.QQ号码;

16.日期;

17.符合安全规则的密码;

18.某项的重复值;

19.两数的关系比较;

20.判断输入值是否在(n, m)区间;

21.输入字符长度限制(可按字节比较);

22.对于具有相同名称的单选按钮的选中判断;

23.限制具有相同名称的多选按钮的选中数目;

24.自定义的正则表达式验证;

25.文件上传格式过滤(1.04新增)。

 

语法:accept="string" 

类型:字符串。 可选。 

说明:设定表单项输入过滤,多用于type="file" 的上传控件,以限制允许上传的文件类型。该属性仅当dataType属性值为Filter时起作用。

语法:dataType="Require | Chinese | English | Number | Integer | Double | Email | Url | Phone | Mobile | Currency | Zip | IdCard | QQ | Date | SafeString | Repeat | Compare | Range | Limit | LimitB | Group | Custom | Filter "

 

类型:字符串。必选。 

说明:用于设定表单项的输入数据验证类型。 

选值说明: 

可选值 验证功能 

Require 必填项 

Chinese 中文 

English  英文

Number   数字 

Integer   整数 

Double   实数 

Email   Email地址格式 

Url    基于HTTP协议的网址格式 

Phone    电话号码格式 

Mobile   手机号码格式 

Currency   货币格式 

Zip   邮政编码 

IdCard   身份证号码 

QQ   Q号码 

Date   日期 

SafeString   安全密码 

Repeat   重复输入 

Compare  关系比较 

Range   输入范围 

Limit   限制输入长度 

LimitB   限制输入的字节长度 

Group    验证单/多选按钮组 

Custom   自定义正则表达式验证  

Filter   设置过滤,用于限制文件上传

 

验证表单 

在表单中加上onsubmit事件,触发调用Validaotor的Validate方法,代码示例: 

<form onSubmit="return Validator.Validate(this,3)" action="your_application_page" method="post">

... ...

</form> 

Validate方法有两个可选参数,第一个为表单对象,如果是写在表单的onsubmit事件中,可以用this指代当前表单,默认值为事件源对象;第二个参数为错误提示模式,可选值为1,2和3,默认值为1。省略第二个参数时相当于使用Validate(objForm,1),省略第一个参数时相当于Validate(this,1)。注意,不可以省略第一个参数而只写第二个参数,Validate(,2)是错误的用法。

 

验证输入是否Email地址 

代码示例: 

<input name="Email" dataType="Email" msg="信箱格式不正确"> 

<input name="Email" dataType="Custom" regexp="^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$" msg="信箱格式不正确">

 

Validator的必要属性是dataType和msg(区分大小写),然后根据dataType值的不同,会引发出不同的属性。因为程序中已经集成Email地址格式的正则,所以可以直接用dateType="Email"进行验证,如果对Email地址的格式有不同的限制,可以用自定义的正则来验证(参考第二段代码)。

验证下拉菜单是否选中 

代码示例: 

<select name="Operation" dataType="Require" msg="未选择所用操作系统" >

<option value="">选择您所用的操作系统</option>

<option value="Win98">Win98</option>

<option value="Win2k">Win2k</option>

<option value="WinXP">WinXP</option>

</select> 

注意,对于IE,在option中没写value属性时IE的解释引擎将自动设置其值为空,而Firefox时将自动设置其值为text属性址。例如,在示例代码中如果第一个option不写value属性,IE中将得到value为空,而Firefox为"选择您所用的操作系统"。

 

验证是否选中单选按钮组中的一个 

代码示例: 

广东<input name="Province" value="1" type="radio">

陕西<input name="Province" value="2" type="radio">

浙江<input name="Province" value="3" type="radio">

江西<input name="Province" value="4" type="radio" dataType="Group" msg="必须选定一个省份" > 

对于单/多选按钮组的验证,dataType属性都为Group,然后只需在按钮组的最后一个写上dataType和msg属性。

注意,要成为单/多选按钮组,它们必须具有相同的name属性值。

 

限制多选按钮组的选中个数 

代码示例: 

运动<input name="Favorite" value="1" type="checkbox">

上网<input name="Favorite" value="2" type="checkbox">

听音乐<input name="Favorite" value="3" type="checkbox">

看书<input name="Favorite" value="4" type="checkbox"" dataType="Group" min="2" max="3" msg="必须选择2~3种爱好"> 

要限制多选按钮组的选中个数,必须设置min和max属性。min属性用于设定选中个数的下限,max为上限,默认时min为1,max为多选按钮组的个数。

 <table align="center">

  <form name="theForm" id="demo" method="get" onSubmit="return Validator.Validate(this,2)">

  <tr>

   <td>身份证号:</td><td><input name="Card" dataType="IdCard" msg="身份证号错误"></td>

  </tr>

    <tr>

   <td>真实姓名:</td><td><input name="Name" dataType="Chinese" msg="真实姓名只允许中文"></td>

  </tr>

  <tr>

   <td>ID:</td><td><input name="username" dataType="Username" msg="ID名不符合规定"></td>

  </tr>

  <tr>

   <td>英文名:</td><td><input name="Nick" dataType="English" require="false" msg="英文名只允许英文字母"></td>

  </tr>

    <tr>

   <td>主页:</td><td><input name="Homepage" require="false" dataType="Url"   msg="非法的Url"></td>

  </tr>

  <tr>

   <td>密码:</td><td><input name="Password" dataType="SafeString"   msg="密码不符合安全规则" type="password"></td>

  </tr>

  <tr>

   <td>重复:</td><td><input name="Repeat" dataType="Repeat" to="Password" msg="两次输入的密码不一致" type="password"></td>

  </tr>

  <tr>

   <td>信箱:</td><td><input name="Email" dataType="Email" msg="信箱格式不正确"></td>

  </tr>

    <tr>

   <td>信箱:</td><td><input name="Email" dataType="Repeat" to="Email" msg="两次输入的信箱不一致"></td>

  </tr>

  <tr>

   <td>QQ:</td><td><input name="QQ" require="false" dataType="QQ" msg="QQ号码不存在"></td>

  </tr>

    <tr>

   <td>身份证:</td><td><input name="Card" dataType="IdCard" msg="身份证号码不正确"></td>

  </tr>

  <tr>

   <td>年龄:</td><td><input name="Year" dataType="Range" msg="年龄必须在18~28之间" min="18" max="28"></td>

  </tr>

   <tr>

   <td>年龄1:</td><td><input name="Year1" require="false" dataType="Compare" msg="年龄必须在18以上" to="18" operator="GreaterThanEqual"></td>

  </tr>

   <tr>

   <td>电话:</td><td><input name="Phone" require="false" dataType="Phone" msg="电话号码不正确"></td>

  </tr>

   <tr>

   <td>手机:</td><td><input name="Mobile" require="false" dataType="Mobile" msg="手机号码不正确"></td>

  </tr>

     <tr>

   <td>生日:</td><td><input name="Birthday" dataType="Date" format="ymd" msg="生日日期不存在"></td>

  </tr>

   <tr>

   <td>邮政编码:</td><td><input name="Zip" dataType="Custom" regexp="^[1-9]\d{5}$" msg="邮政编码不存在"></td>

  </tr>

  <tr>

   <td>邮政编码:</td><td><input name="Zip1" dataType="Zip" msg="邮政编码不存在"></td>

  </tr>

  <tr>

   <td>操作系统:</td><td><select name="Operation" dataType="Require"  msg="未选择所用操作系统" ><option value="">选择您所用的操作系统</option><option value="Win98">Win98</option><option value="Win2k">Win2k</option><option value="WinXP">WinXP</option></select></td>

  </tr>

  <tr>

   <td>所在省份:</td><td>广东<input name="Province" value="1" type="radio">陕西<input name="Province" value="2" type="radio">浙江<input name="Province" value="3" type="radio">江西<input name="Province" value="4" type="radio" dataType="Group"  msg="必须选定一个省份" ></td>

  </tr>

  <tr>

   <td>爱好:</td><td>运动<input name="Favorite" value="1" type="checkbox">上网<input name="Favorite" value="2" type="checkbox">听音乐<input name="Favorite" value="3" type="checkbox">看书<input name="Favorite" value="4" type="checkbox"" dataType="Group" min="2" max="3"  msg="必须选择2~3种爱好"></td>

  </tr>

   <td>自我介绍:</td><td><textarea name="Description" dataType="Limit" max="10"  msg="自我介绍内容必须在10个字之内">中文是一个字</textarea></td>

  </tr>

     <td>自传:</td><td><textarea name="History" dataType="LimitB" min="3" max="10"  msg="自传内容必须在[3,10]个字节之内">中文是两个字节t</textarea></td>

  </tr>

    <tr>

   <td>相片上传:</td><td><input name="up" dataType="Filter" msg="非法的文件格式" type="file" accept="jpg, gif, png"></td>

  </tr>

  <tr>

   <td colspan="2"><input name="Submit" type="submit" value="确定提交"><input onClick="Validator.Validate(document.getElementById('demo'))" value="检验模式1" type="button"><input onClick="Validator.Validate(document.getElementById('demo'),2)" value="检验模式2" type="button"><input onClick="Validator.Validate(document.getElementById('demo'),3)" value="检验模式3" type="button"></td>

  </tr>

  </form>

 </table>

原文地址 http://js-code.iteye.com/blog/229678

 

分享到:
评论

相关推荐

    2000-2021年中国科技统计年鉴(分省年度)面板数据集-最新更新.zip

    2000-2021年中国科技统计年鉴(分省年度)面板数据集-最新更新.zip

    PPT保护工具PDFeditor专业版-精心整理.zip

    PPT保护工具PDFeditor专业版-精心整理.zip

    Spring Boot Docker 项目:含项目构建、镜像创建、应用部署及相关配置文件,容器化部署.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。

    考研英语真题及详解-精心整理.zip

    考研英语真题及详解-精心整理.zip

    Jupyter_AI 人工智慧開發入門.zip

    Jupyter-Notebook

    全国电子地图行政区划道路水系数据-最新shp.zip

    全国电子地图行政区划道路水系数据-最新shp.zip

    Spring Cloud Function RCE 漏洞的 POC 项目,含漏洞利用及相关测试内容.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。

    地级市进出口贸易及外资利用数据(297城)-最新.zip

    地级市进出口贸易及外资利用数据(297城)-最新.zip

    HengCe-18900-2024-2030中国皮革制品市场现状研究分析与发展前景预测报告-样本.docx

    HengCe-18900-2024-2030中国皮革制品市场现状研究分析与发展前景预测报告-样本.docx

    java制作的小游戏,作为巩固java知识之用.zip

    猪脚饭超好吃 java制作的小游戏,作为巩固java知识之用.zip

    基于python的大麦网自动抢票工具的设计与实现(1) - 副本.zip

    【基于Python的大麦网自动抢票工具的设计与实现】 随着互联网技术的发展,网络购票已经成为人们生活中不可或缺的一部分。尤其是在文化娱乐领域,如音乐会、演唱会、戏剧等活动中,热门演出的门票往往在开售后瞬间就被抢购一空。为了解决这个问题,本论文探讨了一种基于Python的自动抢票工具的设计与实现,旨在提高购票的成功率,减轻用户手动抢票的压力。 Python作为一种高级编程语言,因其简洁明了的语法和丰富的第三方库,成为了开发自动化工具的理想选择。Python的特性使得开发过程高效且易于维护。本论文深入介绍了Python语言的基础知识,包括数据类型、控制结构、函数以及模块化编程思想,这些都是构建抢票工具的基础。 自动化工具在现代社会中广泛应用,尤其在网络爬虫、自动化测试等领域。在抢票工具的设计中,主要利用了自动化工具的模拟用户行为、数据解析和定时任务等功能。本论文详细阐述了如何使用Python中的Selenium库来模拟浏览器操作,通过识别网页元素、触发事件,实现对大麦网购票流程的自动化控制。同时,还讨论了BeautifulSoup和requests库在抓取和解析网页数据中的应用。 大麦网作为国内知名的票务平台,其网站结构和购票流程对于抢票工具的实现至关重要。论文中介绍了大麦网的基本情况,包括其业务模式、用户界面特点以及购票流程,为工具的设计提供了实际背景。 在系统需求分析部分,功能需求主要集中在自动登录、监控余票、自动下单和异常处理等方面。抢票工具需要能够自动填充用户信息,实时监控目标演出的票务状态,并在有票时立即下单。此外,为了应对可能出现的网络延迟或服务器错误,工具还需要具备一定的错误恢复能力。性能需求则关注工具的响应速度和稳定性,要求在大量用户同时使用时仍能保持高效运行。 在系统设计阶段,论文详细描述了整体架构,包括前端用户界面、后端逻辑处理以及与大麦网交互的部分。在实现过程中,采用了多线程技术以提高并发性,确保在抢票关键环节的快速响应。此外,还引入了异常处理机制,以应对网络故障或程序错误。 测试与优化是确保抢票工具质量的关键步骤。论文中提到了不同场景下的测试策略,如压力测试、功能测试和性能测试,以验证工具的有效性和稳定性。同时,通过对抢票算法的不断优化,提高工具的成功率。 论文讨论了该工具可能带来的社会影响,包括对消费者体验的改善、对黄牛现象的抑制以及可能引发的公平性问题。此外,还提出了未来的研究方向,如增加多平台支持、优化抢票策略以及考虑云服务的集成,以进一步提升抢票工具的实用性。 本论文全面介绍了基于Python的大麦网自动抢票工具的设计与实现,从理论到实践,从需求分析到系统优化,为读者提供了一个完整的开发案例,对于学习Python编程、自动化工具设计以及理解网络购票市场的运作具有重要的参考价值。

    校园驿站全天候辅助取货管理系统 SSM毕业设计 附带论文.zip

    校园驿站全天候辅助取货管理系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B

    1970年至2010年美国所有乳制品的供应和利用情况

    1970年至2010年美国所有乳制品的供应和利用情况

    java-leetcode题解之Possible Bipartition.java

    java基础 java_leetcode题解之Possible Bipartition.java

    基于Java开发的阿里巴巴数据库事业部druid连接池设计源码

    该开源项目为阿里巴巴数据库事业部精心打造的druid连接池设计源码,包含4689个文件,涵盖4069个Java源文件、297个SQL脚本、102个文本文件以及其他多种文件类型。druid连接池以其独特的监控功能,旨在为数据库连接管理提供高效、可靠的解决方案。项目文件类型丰富,包括HTML、JavaScript、CSS和Shell脚本等,适用于多种开发需求。

    Jupyter_一个不会自学的人是没有前途的.zip

    Jupyter-Notebook

    金融风险管理计算手册(CoVaR)最新版.zip

    金融风险管理计算手册(CoVaR)最新版.zip

    网上选课系统 SSM毕业设计 附带论文.zip

    网上选课系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B

    腾讯word2vec模型缩小版.zip

    Jupyter-Notebook

    Jupyter_推荐系统入门教程在线阅读地址.zip

    Jupyter-Notebook

Global site tag (gtag.js) - Google Analytics