一个表单验证

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!--<title>js表单验证插件、邮箱验证、中文汉字验证、手机号码验证、数字验证等</title>-->
    <title>js  111</title>
    <meta name="description" content="js表单验证插件支持多种内容表单验证,有js邮箱地址验证、js中文汉字验证、js手机号码验证、js数字验证等。内含js代码下载。" />
    <style type="text/css">
        *{margin:0;padding:0;list-style-type:none;font-size:12px;}
        a,img{border:0;}
        /* formbox */
        .formbox{width:650px;margin:0 auto;}
        .formbox li{height:40px;}
        .formbox li label{line-height:32px;width:80px;float:left;text-align:right;}
        .formbox li input.text{float:left;height:16px;font-size:12px;padding:2px;margin:3px 0 0 0;width:200px;}
        .formbox li .btnimg{height:24px;background:#ff6600;border:0;width:80px;cursor:pointer;font-size:12px;font-weight:800;color:#fff;}
        /*必要元素*/
        .wrong{width:200px;height:20px;line-height:20px;padding-left:30px;background:url(error.png) no-repeat;position:absolute;font-size:12px;}
        .right{width:100px;height:20px;position:absolute;background:url(ok.png) no-repeat;}
    </style>
</head>
<body>
<form method="post" action="">
    <ul class="formbox">
        <li>
            <label>邮箱地址:</label><input type="text" name="email" class="text" />
        </li>
        <li>
            <label>不能为空:</label><input type="text" name="address" class="text" />
        </li>

        <li>
            <label>年龄:</label><input type="text" name="jsfoot" class="text" />
        </li>
        <li>
            <label>真实姓名:</label><input type="text" name="trueName" class="text" />
        </li>

        <li>
            <label>任意可选项:</label><input type="text" name="buildType" class="text" />
        </li>
        <li>
            <label>手机号码:</label><input type="text" name="PhoneCall" class="text" />
        </li>
        <li>
            <label>&nbsp;</label><input type="submit" class="btnimg" value="提交" />
        </li>
    </ul>
</form>
<script type="text/javascript">
    // 调用示例
    var checkobj={
        mail:"email",         //验证邮箱格式
        phone:"PhoneCall",    //验证手机号码
        num:"jsfoot",         //验证数字格式
        chinese:"trueName",   //验证中文汉字
        address:"address"     //验证空值
    }
    XformCheck(document.forms[0],checkobj);
    /*
     descript : XformCheck;
     author   : popper.w
     date     : 2008-6-22
     @pram xfromElement 需要检测的form对象
     @pram checkobj 设置需要检测的项
     默认有mail(邮件地址)、phone(手机或固定电话)、num(数字)、chinese(汉字)、empty(是否为空)、length(长度)、url(url地址合法)等检测
     //例如:如果某一项name为"xxx"需要检测email格式,则给checkobj中添加{mail:"xxx"},如果仅仅是检测是否为空,则直接添加{xxx,"xxx"}即可*/
    function XformCheck(xfromElement,checkobj){
        var om={};
        if(checkobj){
            om=checkobj
        }
        if(!xfromElement){
            return false;
        }
        for(var o in checkobj){
            xfromElement[checkobj[o]].onblur=function(e){
                e=window.event||e;
                var eSrc=e.srcElement||e.target;
                var Xvalue=trim(this.value);

                if(isEmpty(Xvalue)){
                    ShowMes(eSrc,"此项不能为空","wrong");
                }else{
                    switch(this.name){
                        case om.mail:
                            if(!isEmail(Xvalue)){
                                ShowMes(eSrc,"邮箱地址不正确","wrong");
                            }else{
                                ShowMes(eSrc,"","right");
                            }
                            break;

                        case om.phone:
                            if(!isPhone(Xvalue)){
                                ShowMes(eSrc,"电话号码格式不正确","wrong");
                            }else{
                                ShowMes(eSrc,"","right");
                            }
                            break;

                        case om.num :
                            if(!isNum(Xvalue)){
                                ShowMes(eSrc,"只能是数字","wrong");
                            }else{
                                ShowMes(eSrc,"","right");
                            }
                            break;

                        case om.chinese :
                            if(!isChinese(Xvalue)){
                                ShowMes(eSrc,"必须为汉字","wrong");
                            }else{
                                ShowMes(eSrc,"","right")
                            }
                            break;

                        case om.url :
                            if(!isUrl(Xvalue)){
                                ShowMes(eSrc,"url地址不正确","wrong");
                            }else{
                                ShowMes(eSrc,"","right");
                            }
                            break;

                        case om.length :
                            if(!isProperLen(Xvalue)){
                                ShowMes(eSrc,"长度不正确不正确","wrong");
                            }else{
                                ShowMes(eSrc,"","right");
                            }
                            break;

                        default :
                            ShowMes(eSrc,"","right")
                    }
                }
            }
        }

        /*判断为空*/
        function isEmpty(o){
            return o==""?true:false;
        }
        /*判断是否为合适长度 6-32 位*/
        function isProperLen(o){
            var len=o.replace(/[^\x00-\xff]/g,"11").length;
            if(len>32||len<6){
                return false;
            }else{
                return true;
            }
        }
        /*判断是否为Email*/
        function isEmail(o){
            var reg=/^\w+\@[a-zA-Z0-9]+\.[a-zA-Z]{2,4}$/i;
            return reg.test(o);
        }
        /*判断url是否正确*/
        function isUrl(o){
            var reg=/^(http\:\/\/)?(\w+\.)+\w{2,3}((\/\w+)+(\w+\.\w+)?)?$/;
            return reg.test(o);
        }
        /*判断是否为电话号码 可以是手机或 固定电话*/
        function isPhone(v){
            var reg=/((15[89])\d{8})|((13)\d{9})|(0[1-9]{2,3}\-?[1-9]{6,7})/i;
            if(reg.test(v)){
                return true;
            }else{
                return false;
            }
        }
        function isNum(o){
            var reg=/[^\d]+/;
            return reg.test(o)?false:true;
        }
        function isChinese(o){
            var reg=/^[\u4E00-\u9FA5]+$/;
            return reg.test(o);
        }
        /*去除空白字符*/
        function trim(str){
            return str.replace(/(^\s*)|(\s*$)/g, "");
        }
        function ShowMes(o,mes,type){
            if(!o.ele){
                var Xmes=document.createElement("div");
                document.body.appendChild(Xmes);
                o.ele=Xmes;
            }
            o.ele.className=type;
            o.ele.style.display="block";
            o.ele.style.left=(XgetPosition(o).x+220)+"px";
            o.ele.style.top=XgetPosition(o).y+"px";
            o.ele.innerHTML=mes;
        }
    }
    function XgetPosition(e){
        var left = 0;
        var top  = 0;
        while(e.offsetParent){
            left += e.offsetLeft;
            top  += e.offsetTop;
            e= e.offsetParent;
        }
        left += e.offsetLeft;
        top  += e.offsetTop;
        return {
            x:left, y:top
        };
    }
</script>
</body>
</html>

效果图:

用到的图片:

时间: 2024-10-28 14:54:35

一个表单验证的相关文章

javascript:正则表达式、一个表单验证的例子

阅读目录 本文内容: 正则表达式: 利用正则表达式进行表单验证的例子: 回到顶部 本文内容: 正则表达式 正则表达式的使用方法 正则表达式的特殊匹配字符 正则表达式修饰符 利用正则表达式进行表单验证的例子 首发日期:2018-05-13 回到顶部 正则表达式: 正则表达式的使用方法: 首先创建正则表达式对象: [正则表达式的字符规则:如果是没有特殊意义的字符,直接写:如果是有特殊意义的,直接写:如果想将特殊意义的字符转成非特殊意义的,前面使用\] 可以通过RegExp对象创建正则表达式对象: v

自己写的一个表单验证类

表单验证类使用说明: myvalidation类的使用说明: 目前实现功能:form表单的非空验证和手机号码验证 默认弹出提示框,提示框的内容 优先选择:input对应lable文本+"不能为空" 其次选择:input的placeholder字段 因此至少保证,上述至少有一种是想要的警告内容 使用方法: 1,jsp页面中引入myvalidation.js文件 2,删除一切jsp页面原提交按钮的onclick="xxx.submit();事件 3,form表单字段非空:对应字段

第一篇,js表单验证模板

下面是对于一个email的表单验证的基本模板<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <style type="text/css" > .init{ border: 1px solid black; font-weight: bold; } .right{ border: 1px solid green; f

jquery validate 表单验证插件

对于初学者而言,html表单验证是一项极其琐碎的事情.要做好表单验证,需要准备以下基本要素: 1.html表单结构:包含需要校验的表单元素: 2.js逻辑控制:在需要校验的表单元素上绑定事件,如点击.获取焦点.失去焦点等事件,并设置这些事件对应的执行函数: 3.css样式设置:针对需要校验的表单元素,需要设置默认的初始样式,以及触发元素绑定事件后的变化样式. 这3类基本要素中,html表单结构的创建相对简单.表单验证的重点和难点在于如何利用js及时有效地提醒用户有关表单操作的信息.这里我参考了百

自己编写的表单验证插件

自己编写了一个表单验证插件,使用起来很简单,以后还可以扩展更多的功能,比如ajax验证. 思路借鉴了wojilu框架.每个需要验证的表单元素下面有一个span标签,这个标签的class有一个valid表示需要验证,如果有nullable则表示可为空:rule表示验证规则,msg表示错误提示信息:to表示要验证的元素的name值,如果元素是单个的,to可以不写.该插件会遍历每个有valid的span标签,找出它前面需要验证的元素,根据rule验证,如果验证不通过,则显示边框为红色,鼠标放在元素上时

angular表单验证实例----可用的代码

前段时间,公司做一个单页面,就是一个表单验证,早开始在菜鸟教程上关注了angular,所以下派上用场了 angular里面对于表单验证,设置了很多指令. 也就是说不用自己写一些逻辑,直接绑定指令就行. ng-app     启动你angular的模块 ng-controller 控制器,启动你angualr里面的逻辑代码作用在页面上 ng-options  循环你select里面的option标签,很好用的 ng-submit,表单提交执行的 novalidate  表单form配合后期检测的

AngularJS学习笔记(二) 表单验证案例(ng-repeat/filter)

这一节相对来说需要理解的东西不是太多,记住了那些api就行了. 还是一个案例(同样来自miaov),一个表单验证,先上代码,然后再对对应的内容进行解释. <!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <meta charset="UTF-8"> <title>Title</title> </head>

jQuery学习之:Validation表单验证插件

http://polaris.blog.51cto.com/1146394/258781/ 最近由于公司决定使用AJAX + Struts2来重构项目,让我仔细研究一下这两个,然后集中给同事讲讲,让每个人都能够有所掌握,慢慢会用.于是,自己便开始学习…… 由于Struts2自己早就学过,因而不需要花多少时间.而AJAX之前没怎么用过.现在AJAX框架如此之多,选择哪一个呢?开始打算选择 dojo,但是看了一点后,发现蛮复杂的.在之前有学过一点点jQuery,而网上也说jQuery很强大而且很容易

ajax实现登陆表单验证功能

ajax实现登陆表单验证功能:使用ajax进行表单登陆验证功能更为的人性化,下面提供一个表单验证的实例代码,代码较为简单,仅仅作为演示之用而已,多实用的ajax表单验证功能都较为复杂.下面分布分出代码:一.静态页面表单部分代码: <script type="text/javascript" src="http://www.softwhy.com/mytest/jQuery/jquery-1.8.3.js"></script> <scri