JavaScript 最佳表单验证

来源:未知 责任编辑:智问网络 发表时间:2013-11-08 08:46 点击:

<html> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
        <title>注册会员</title> 
        <style type="text/css"> 
            .table { 
                border-collapse:collapse;    
                font-size:12px; 
            } 
            .input { 
                width:200px; 
                height:22px; 
            } 
            .stats1 { 
                color:#aaa;                    
            } 
            .stats2 { 
                color:#000; 
            } 
            .stats3 { 
                color:red; 
            } 
            .stats4 { 
                color:green; 
            } 
        </style> 
    </head> 
    <body> 
        <form action="index.php" method="post" onSubmit="return regCheck('click')"> 
        <table border="0" align="center" width="500" class="table"> 
            <tr> 
                <td width="80" height="25" align="right">用户名称:</td><td><input type="text" name="username" value="" class="input" /> <span class="stats1"></span></td> 
            </tr> 
            <tr> 
                <td width="80" height="25" align="right">密码:</td><td><input type="password" name="password" value="" class="input" /> <span class="stats1"></span></td> 
            </tr> 
            <tr> 
                <td width="80" height="25" align="right">确认密码:</td><td><input type="password" name="repass" value="" class="input" /> <span class="stats1"></span></td> 
            </tr> 
            <tr> 
                <td width="80" height="25" align="right">电子邮箱:</td><td><input type="text" name="email" value="" class="input" /> <span class="stats1"></span></td> 
            </tr> 
            <tr> 
                <td height="30"></td><td align="left"><input type="submit" name="send" value="提交" /> <input type="reset" value="重置" /></td> 
            </tr> 
        </table> 
        </form> 
    </body> 
</html> 
<script language="javascript"> 
// 找到 input 后面的 SPAN 标签 
function gspan(cobj){ 
    while(true){ 
        if(cobj.nextSibling.nodeName!="SPAN") 
            cobj=cobj.nextSibling; 
        else 
            return cobj.nextSibling;     
    } 

 
function check(obj, info, fun, click){ 
    var sp=gspan(obj); 
    obj.onfocus=function(){  
        sp.innerHTML=info; 
        sp.className="stats2"; 
         
    } 
 
    obj.onblur=function(){ 
        if(fun(this.value)){ 
            sp.innerHTML="输入正确√"; 
            sp.className="stats4"; 
             
        }else{ 
            sp.innerHTML=info; 
            sp.className="stats3"; 
        } 
    } 
 
    if(click=="click") 
        obj.onblur(); 

 
//页面加载完自动调用 
onload=regCheck 
function regCheck(click){ 
 
var stat=true; 
    var username=document.getElementsByName("username")[0]; 
    var password=document.getElementsByName("password")[0]; 
    var repass=document.getElementsByName("repass")[0]; 
    var email=document.getElementsByName("email")[0]; 
    var other=document.getElementsByName("other")[0]; 
 
        // 验证用户名 
    check(username, "用户名称为4-20位的英文字母或数字!", function(val){ 
 
        if(val.match(/^\S+$/) && val.length >=4 && val.length <=20){ 
            return true; 
        }else{ 
            stat=false; 
            return false; 
        } 
    }, click); 
         
        // 验证密码 
    check(password, "用户密码必须在6-20位之间!", function(val){ 
        if(val.match(/^\S+$/) && val.length >=6 && val.length <=20){ 
            return true; 
        }else{ 
            stat=false; 
            return false; 
        } 
    }, click); 
 
        // 验证确认密码 
    check(repass, "确定密码要和上面一致!", function(val){ 
        if(val.match(/^\S+$/) && val.length >=6 && val.length <=20 && val==password.value){ 
            return true; 
        }else{ 
            stat=false; 
            return false; 
        } 
    }, click) 
 
    // 验证Email 
    check(email, "请输入正确格式的电子邮箱!", function(val){ 
        if(val.match(/\w+@\w+\.\w/)){ 
            return true; 
        }else{ 
            stat=false; 
            return false; 
        } 
    }, click)        
 
    return stat; 

</script> 
 

摘自 Lee.的专栏

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Gb2312转utf-8编码的方法(vbs+js)
    • 如何使用Ajax技术开发Web应用程序(1)
    • js跳转路径问题
    • JavaScript模仿桌面窗口
    • 用js检测两个线段是否相交
    • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
    • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
    • 我是如何去了解jquery的(六),案例之幻灯片轮换
    • Jquery封装幻灯片效果
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1