网络编程
位置:首页>> 网络编程>> JavaScript>> js友好的表单验证程序vform

js友好的表单验证程序vform

作者:mickeyboy 来源:lxbzj.com 发布时间:2007-08-16 13:32:00 

标签:表单验证,js

看了山人表单验证,又看了其他一些验证程序和相关的一些参考资料,写出了一个比较简洁的js表单验证程序。特点是扩展容易,可以方便的添加自己需要的验证方式;兼容性好(ie5,6 firefox,oprea)。 可用性好,没有使用alert()来弹出提示;

功能简述:
验证:

  • http地址。

  • 时间日期

  • e-mail

  • 数字

  • 字符长度检查

  • 一项输入与另一项输入比较(例如:密码的确认输入)

  • 大小比较(只能有一个比较符号)

    编写思路:
    整个程序的结构及较简单
    为了能够验证一些常用的格式,先对js的内置对象进行了扩展
    比如:


    String.prototype.isUrl = function(){
           var url = /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\’:+!]*([^<>\"\"])*$/;
           var tmpStr = this;
           return url.test(tmpStr);}


    这个用来验证http地址。
    然后写了一个对象叫做vform 包含了主要的功能
    vform初始化的时候,会检查添加好的验证规则,并将要验证的表单控件对象扩展,添加validate() 和 validlength()两个函数,并且添加onblur事件来进行验证。
    出错提示采用的建立div对象的方法,出错就显示,正确就隐藏。所以还需要给div定义一个样式。
    使用前需要指定表单的id 注意是id不是name 要不然会出错
    而规则添加的时候要指定的是表单控件的name属性不是id
    验证规则参数为 obj,minLength,dataType,errmsg,maxLength
    第一个为表单控件name
    第二个是 填写的字符串最小长度0意味着可以不填 而1意味着是必添
    第三个是验证格式 有

    • e-mail

    • url

    • date

    • number

    • any

    • 还有两种动态的格式用\开头, \表单控件的name 表示必须与之的值一样;

    • \>数字 表示大于数字,类推;但是没有\>=这样的|||


      第四个是 最大长度。
      与其他程序不一样的是:我对http地址与日期格式地址的处理不同,填入的地址没有http://我会添加上后验证,这样比较人性化,符合可用性的要求。日期的处理也是一样,先尽可能的对填写的数字进行格式转化,然后再验证。格式采用了yyyy-mm-dd的格式。
      完整代码:


      0
      投稿

      猜你喜欢

      • 淡入淡出图片轮换轮播效果,可以做新闻图片推荐需要的拿去用,效果预览请点击运行代码相关效果推荐:迅雷首页新闻图片轮播效果js源码 <!D
      • 就算我们每天在叫嚷着创新经济,设计救国,我们在生活中也无处不在的看到各种设计庸俗、制作粗劣的海报、店面、户外广告、大胸美女和肌肉 * 交相辉映
      • 如何让用户也能修改密码?    好了,照下面添加到你要添加的地方去:<%id = Request(&qu
      • 曾有位网友遇到这样一个问题:产品名称为“A&T Plastic”,在产品列表中需要做这样的超链接,<a href="
      • 初学者可以看看。在的img标签有两个属性分别为alt和title,对于很多初学者而言对这两个属性的正确使用都还抱有迷惑,当然这其中一部分原因
      • 实际参数在函数中我们可以使用 arguments 对象获得 (注:形参可通过 arguments.callee 获得),虽然 argumen
      • 很多时候,用户可能会因为承受不了某一产品中的细节设计而放弃使用该产品,这无疑是让设计人员感很沮丧的事情,因为除去这个细节的问题外,这个产品可
      • 从2004年开始,我开始进入雅虎的异常表现小组。我们是一个很小的队伍,专门针对雅虎的产品进行质量检测和改进,我作为一个后端工程师,现在却开始
      • 最近在工作中涉及到判断服务器所在ip反馈程序使用情况的程序主要要求就是,本机或局域网调试程序时,不反馈其域名(localhost)或ip站长
      • 前几天在“CSS那些事儿”的群中,一位读者朋友(小土豆)问我书中提到首字下沉的时候为什么要增加一个清除浮动。当时我自己一时迷惑了,为什么呢,
      • 看起来现在经常用到这样的效果来提高用户体验,所以就没事写了一个输入框提示列表的效果使用宽屏的朋友麻烦帮忙测试下,列表的位置有没有错位。代码可
      • 随滚动条移动的DIV层js代码,无论你的滚动条到哪里这个DIV层就跟到哪里!代码中例举了五个方向的滚动div层例子:包括左上方的div,左下
      • 关于如何区分艺术和设计的话题总是玄之又玄,并因此引发的争论也有很长一段时间。艺术家和设计师都基于相同的知识基础来创作视觉作品,但他们创作的理
      • 修改文件的名字 使用“FileSystemObject(文件系统对象)”的GetFile函数得到一个“文件对象”,然后修改这个“文件对象”的
      • 1、汉语分词的由来使用ASP开发的中小企业的网站,对于站内搜索,往往只是简单的通过SQL语句匹配数据库。对于比较短的词语搜索,这个方法是有效
      • 昨天在书友会上讨论信息分类和方法,有位朋友问:“大家现在讨论的还是几年前那套web2.0的东西,有没有一些新的东西可以分享?”我当时确实感觉
      • 一、INSERT和REPLACEINSERT和REPLACE语句的功能都是向表中插入新的数据。这两条语句的语法类似。它们的主要区别是如何处理
      • asp在线备份sql server数据库: 1、备份sqlserver 代码如下:<% SQL="backup&n
      • ASP开发中有用的函数(function)集合,挺有用的,请大家保留!'******************************
      •     做过主页的朋友,几乎没有一个人没用到它,它使我们排版更加轻松。有人说DW的表格没有Fp的好用,我认为不
      手机版 网络编程 asp之家 www.aspxhome.com