`
renyanwei
  • 浏览: 70898 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

自己写JS通用表单验证V1.0,其实就是那么回事

阅读更多

闲着无聊写JAVA快写吐血了,哎,换换口味吧,顺手就操起了很久都没看了JavaScript。写点儿什么好呢?感觉表单验证还是实在些(错了,是非常实用,试想下你每次判断用户输入是何等的繁琐)因为JavaScript也实在是干不了什么了(是我用它干不了什么),不过还得学好它,JavaScript很好很强大,而且进入初进公司听说掌握这个挺重要的,好了,废话少说,先看程序,很简单的,大牛可以自觉关闭

/*
 *通用表单验证1.0
 *
 *作者:renyanwei
 *版本:1.0
 *修改日期:2008-10-27
*/

//用于放置验证失败的控件集合
var erritem=new Array();

//验证成功消息
var sucstr="√";

//错误信息集合,如果控件没指定错误信息容器
//将统一在警告框中显示
var errmsg="";

//各就各位
function fun(form)
{
	
    var formobj=document.getElementById(form);  //得到表单对象
    var iarray=formobj.getElementsByTagName("input");
    
    for(var i=0;i<iarray.length;i++)
    {
        var check=iarray[i].getAttribute("check");        
        switch(check){
            case "charcount":
                  erritem[i]=CharCount_fun(iarray[i]);
            break;
            case "numrange":
                  erritem[i]=NumRange_fun(iarray[i]);
            break;
            case "comparison":
                  erritem[i]=Comparison_fun(iarray[i]);
            break;
			case "regex":
				  erritem[i]=Common_fun(iarray[i]);
            default:
                  erritem[i]=true;
            break;
        }
    }
    if(errmsg!="")
    {
        alert(errmsg);
        errmsg="";
    }
    return reform();
}
/*
 *验证字符范围方法
 *maxsize:最大个数
 *minsize:最小个数
 *errmsg:验证失败的错误信息
 *msgdiv:用于显示错误信息容器,如果没有则弹出警告框
*/
function CharCount_fun(inp)
{
    var max=inp.getAttribute("maxsize");
    var min=inp.getAttribute("minsize");
    var msgdiv=document.getElementById(inp.getAttribute("msgdiv"));
    var errmsg=inp.getAttribute("errmsg");
	var val=inp.value.replace(/^\s+|\s+$/,"");
    var leng=val.length;
    if(leng<min||leng>max)
    {
        return showmsg(msgdiv,errmsg,false);
    }else{
        return showmsg(msgdiv,sucstr,true);
    }
}
/*
 *验证数字范围方法
 *maxnum:最大值
 *minnum:最小值
 *errmsg:验证失败的错误信息
 *msgdiv:用于显示错误信息容器,如果没有则弹出警告框
*/
function NumRange_fun(inp)
{
    var max=inp.getAttribute("maxnum");
    var min=inp.getAttribute("minnum");
    var msgdiv=document.getElementById(inp.getAttribute("msgdiv"));
    var errmsg=inp.getAttribute("errmsg");
    var val=inp.value;
    if(isNaN(val)||val<min||val>max)
    {
        return showmsg(msgdiv,errmsg,false);
    }else{
        return showmsg(msgdiv,sucstr,true);
    }
}
/*
 *比较验证方法,比较两个控件值
 *to:要与之比较的控件ID
 *errmsg:验证失败的错误信息
 *msgdiv:用于显示错误信息容器,如果没有则弹出警告框
*/
function Comparison_fun(inp)
{
    var msgdiv=document.getElementById(inp.getAttribute("msgdiv"));
    var errmsg=inp.getAttribute("errmsg");
    var toid=document.getElementById(inp.getAttribute("to"));
    var val=inp.value;
    if(val!=toid.value||val=="")
    {
        return showmsg(msgdiv,errmsg,false);
    }else{
        return showmsg(msgdiv,sucstr,true);
    }
}
/*
 *正则表达式验证方法
 *regstr:正则表达式,无前后\\
 *errmsg:验证失败的错误信息
 *msgdiv:用于显示错误信息容器,如果没有则弹出警告框
*/
function Common_fun(inp)
{
    var msgdiv=document.getElementById(inp.getAttribute("msgdiv"));
	var reg=new RegExp(inp.getAttribute("regstr"));
    var errmsg=inp.getAttribute("errmsg");
    var val=inp.value;
    if(!reg.test(val))
    {
        return showmsg(msgdiv,errmsg,false);
    }else{
        return showmsg(msgdiv,sucstr,true);
    }
}
//显示消息方法
function showmsg(msgdiv,msg,istrue)
{
    if(msgdiv==null)
    {
        errmsg+=msg+"\n";
    }else{
        msgdiv.innerHTML=msgdiv.innerHTML+"<font color='red'>"+msg+"<font>";
    }
    return istrue;
}
//总体验证方法,遍历所有控件是否同时通过验证
function reform()
{
    for(var i=0;i<erritem.length;i++)
    {
        if(!erritem[i])
        {
            return false;
        }
    }
    return true;
}

有兴趣的可以看下实例

---------点击查看---------

 

总结:这里主要是用到了HTML控件的自定义属性,重点应用了getAttribute方法,然后得到属性进行校验,哎 写个JS比写个java程序累多了,因为JavaScript实在是没什么好的调试工具,有的错误还莫名其妙,很是让人崩溃,总之不管好坏总是写出了个能运行的锥形,O(∩_∩)O哈哈~ ,挺高兴的,版本号暂定为1.0

还没解决的问题:根据校验类型自动注册onblue事件,光标进入后清除错误信息,还得靠事件驱动,这点儿确实很难为我,FF和IE还不一样,哎,不过没有真的不爽,等到2.0的时候一定得添加上去

6
2
分享到:
评论
4 楼 yeseruanchong 2008-10-29  
向前辈们 多多学习!!
3 楼 renyanwei 2008-10-29  
Fly_m 写道

不错哈,完全靠自己的思想来做的。我也想做一个,就是不知道怎么开头。
不过,你可以研究一个网易的表单验证js框架form.js,这个对你现在的表单验证有很大的帮助,而且更加科学。

非常感谢
2 楼 yushan 2008-10-29  
很好 很强大 收藏了
1 楼 Fly_m 2008-10-28  
不错哈,完全靠自己的思想来做的。我也想做一个,就是不知道怎么开头。
不过,你可以研究一个网易的表单验证js框架form.js,这个对你现在的表单验证有很大的帮助,而且更加科学。

相关推荐

    .net版通用网站模板 v1.0.zip

    在".NET版通用网站模板 v1.0"中,JavaScript可能被用于处理用户输入、动态加载数据、表单验证、动画效果等多种功能。同时,考虑到性能和可维护性,模板可能会使用模块化管理工具,如Webpack或Gulp,来组织和优化...

    菜菜灰数据库通用留言本V1.0源码.zip

    《菜菜灰数据库通用留言本V1.0源码》是一款基于数据库技术的简单留言本系统,主要用于提供网站用户互动交流的功能。这个源码版本为V1.0,意味着它是该系统的初版,可能包含基本的功能和一些基础的优化。在深入探讨其...

    通用FormValid1.0-js验证框架

    简介:完全通过html不需要写JS验证程序就可以实现表单验证功能,可支持一个表单元件多条件验证, 同一页面多表单可同时使用,和服务端程序无关系,完全客户端方式。 Demo1 基本使用方法 Demo2 自定义错误信息显示...

    Pisx通用表单验证框架2.0

    PISX通用表单验证具有以下一些功能: 1、验证不允许为空的录入字段。 2、验证录入字段的有效长度,不允许小于最短字节数,也不允许超过最长字节数。 3、根据不同数据类型进行验证,验证其是否为合法的数据类型。这些...

    通用企业网站源码 v1.0-ASP源码.zip

    4. **脚本文件(JavaScript或VBScript)**:用于客户端交互,实现表单验证、动态效果等功能。 5. **数据库连接文件(conn.asp)**:包含数据库连接信息,用于与数据库进行通信。 6. **数据库文件(如access.mdb或SQL...

    基于ASP的高档精致银灰色企业通用型网站源码 v1.0.zip

    "基于ASP的高档精致银灰色企业通用型网站源码 v1.0.zip" 提供的是一套适用于企业级应用的网站模板,其特点在于其精致的银灰色设计,以及广泛的通用性。 【ASP的基本结构与工作原理】 ASP文件通常以.asp为扩展名,...

    通用蓝色医院WAP手机网站模板 php版 v1.0.zip

    JavaScript则用于增加动态效果,比如页面滑动、表单验证等。这个模板可能还利用了移动优化的框架,如Bootstrap,以确保在不同屏幕尺寸的手机上都能有良好的显示效果。 在文件名"132696304606903144"中,由于没有...

    php链接格子铺v1.0

    5. **辅助文件**:"cpc.js"可能是一个JavaScript文件,用于在前端实现某些功能,比如处理表单提交、验证用户输入等。"访问脚本之家.html"和"服务器常用软件.html"可能是提供额外信息或教程的页面,帮助用户了解相关...

    基于PHP的通用蓝色医院WAP手机网站模板 php版 v1.0.zip

    3. **js**目录:包含JavaScript文件,用于增强用户体验,如表单验证、滑动效果等。 4. **images**目录:存储网站使用的图像资源,如logo、背景图、图标等。 5. **php**目录:包含PHP脚本文件,用于处理服务器端逻辑...

    小田工作室 v1.0.rar

    8. **用户体验**:为了提供良好的用户体验,网站可能还包含了错误处理、页面加载优化、表单验证、友好的用户界面设计等元素。 9. **文件名称列表**:"我的工作室"可能是一个主页面文件,包含了整个网站的入口点和...

    web前段通用验证器common-validator-2.0.js

    一款灵活通用的JavaScript验证组件,支持灵活多样的验证方式。 此为2.0版本,是在1.0基础架构上做了全新的调整, 希望能通过这个JS验证器小组件为我们码农们提供微小的帮助。 1、启用创建Validator方式,不再使用...

    JS实现的通用表单验证插件完整实例

    本文实例讲述了JS实现的通用表单验证插件。分享给大家供大家参考。具体如下: 这里演示一个通用的JS表单验证插件代码。使用方法:第一步:需设定表单项数据类型,第二步:实例表单验证,验证错误提示说明(程序有...

    基于ASP的通用型商城网站源码(带购物车) v1.0.zip

    总的来说,"基于ASP的通用型商城网站源码(带购物车) v1.0.zip"是一个典型的ASP应用实例,它展示了如何使用ASP技术构建一个包含购物车功能的电子商务平台。不过,随着技术的发展,开发者在维护和扩展这样的系统时,也...

    php语言-预约管理系统v1.0

    本文将深入探讨一个基于PHP的通用预约管理系统——“预约管理系统v1.0”,并解析其核心功能和实现方式。 首先,该系统的核心在于其数据库管理部分。数据库文件名“数据库.sql”是系统的基础,包含了所有的表结构和...

    通用男科医院WAP网站模板 php版 v1.0.zip

    2. **JavaScript**: 作为客户端的脚本语言,JavaScript用于增加交互性,比如表单验证、下拉菜单、轮播图等功能。在男科医院的网站上,这可能包括预约系统、在线咨询等互动功能。 3. **PHP文件**: 这些文件通常包含...

    基于PHP的全角半角在线转换 php版 v1.0.zip

    4. **JavaScript文件**:可能有一个.js文件,用于处理前端交互,如验证输入和显示转换结果。 5. **README或INSTALL文件**:提供关于如何安装和使用该工具的说明。 6. **许可证文件**:如果这是一个开源项目,可能会...

    站长新闻网站程序 v1.0.rar

    10. Js.asp:JavaScript文件,用于实现页面的前端交互效果,如表单验证、动态加载等。 综上所述,"站长新闻网站程序 v1.0"是一个基于ASP的简单CMS,具备新闻展示、用户互动(留言)、文章分类、投票、搜索等功能,...

    PHP实例开发源码-列车时刻查询工具php版 v1.0.zip

    HTML用于构建页面结构,CSS负责样式设计,提升用户体验,而JavaScript可能用于表单验证、动态加载数据以及与后台PHP脚本交互。 此外,考虑到性能和效率,开发者可能采用了缓存机制。对于频繁查询且不常变动的数据,...

    酷利斯特多用户留言板 v1.0

    "酷利斯特多用户留言板 v1.0"是一款基于ASP(Active Server Pages)技术的多用户交互系统,它为用户提供了一个平台,使他们能够在线进行交流和互动。这个系统的核心功能包括用户留言、管理回复、注册账户以及后台...

    PT简易留言本mvc架构 v1.0.zip

    【PT简易留言本MVC架构 v1.0.zip】是一个基于MVC(Model-View-Controller)设计模式的简单留言本应用。MVC是一种广泛应用于Web开发中的软件设计模式,它将应用程序分为三个主要组件:模型(Model)、视图(View)和...

Global site tag (gtag.js) - Google Analytics