实现一个类似如此效果的表单验证:

1.前台一开始用JQuery实现,先来上HTML标记:

<body>
    <form id="form1" runat="server">
    <table class="tble">
    <tr><td class="td1">用户名&nbsp;<input type="text" class="td" /></td></tr>
    <tr><td class="td2">密码&nbsp;<input type="text" class="td"/></td></tr>
    <tr><td class="td3">邮箱&nbsp;<input type="text" class="td" /></td></tr>
    <tr><td class="td4">确认密码&nbsp;<input type="text" class="td" /></td></tr>
    <tr><td><input class="btton1"  type="button" value="提交" /></td><td><input class="btton2" type="reset" value="重置" /></td></tr>
    </table>
    </form>
</body>

2,然后是CSS代码:

<style type="text/css">
            .tble
            {
              font-size:14px;
              text-align:right;
              position:absolute;
              left:550px;
              top:150px;
                }
        .td
        {
          border:2px #CCCCCC solid;
      
            }
            .btton1
            {
               position:absolute;
               left:65px;
          
                }
                 .btton2
            {
               position:absolute;
               left:110px;
          
                }
                .span
                {
                    color:#cccccc;
                    font-size:14px;
                     text-align:right;
                    }
                    .spanPwd2
                    {
                         color:Red;
                        }
                         .spanPwd3
                    {
                         color:Red;
                        }
                                .spanPwd4
                    {
                         color:Red;
                        }
                        .spanPwd5
                        {
                          color:Green;
                            }
                            .spanPwd6
                            {
                                color:Red;
                                }
    </style>

3.编写JQUery代码前需要引入JQuery支持文件:

<script src="jquery-1.4.1.min.js" type="text/javascript"></script>

4.现在开始编写JQuery代码:

<script type="text/javascript">
        $(function () {
            GetStyle();
            GetPassword();
            GetEmail();

function GetStyle() {

$("input.td").focus(function () {

//===================密码样式处理===================================
                    $(this).css("border", "2px #00ccff solid");
                    var span = "<td class='span'><span>请输入密码</span></td>";
                    $(this).parent().parent().find("td.td2").after(span);
                    $(this).parent().parent().find("td.spanPwd2").remove();
                    $(this).parent().parent().find("td.spanPwd3").remove();

$(this).parent().parent().find("td.spanPwd4").remove();

$(this).parent().parent().find("td.spanPwd5").remove();
                    //==================================================================
                    //================邮箱样式处理==============================
                    $(this).css("border", "2px #00ccff solid");
                    var spanEmail = "<td class='span'><span>请输入正确邮箱地址</span></td>";
                    $(this).parent().parent().find("td.td3").after(spanEmail);
                    $(this).parent().parent().find("td.spanPwd6").remove();

$(this).parent().parent().find("td.spanPwd5").remove();
                    //===================用户名样式处理========================
                    $(this).css("border", "2px #00ccff solid");
                    var spanEmail = "<td class='span'><span>请输入正确用户名</span></td>";
                    $(this).parent().parent().find("td.td1").after(spanEmail);
                    $(this).parent().parent().find("td.spanPwd6").remove();

$(this).parent().parent().find("td.spanPwd5").remove();
                })
            }

//================确认密码的验证================================
            //非空验证
            //确认密码与原密码一致性的验证

function GetPassword() {
                $("input.td").blur(function () {
                    //================密码验证=================================
                    //非空验证
                    if ($(this).val() == "") {
                        $(this).css("border", "2px red solid");
                        $(this).parent().parent().find("td.span").remove();
                        var span = "<td class='spanPwd2'><span>密码不能为空!</span></td>";
                        $(this).parent().parent().find("td.td2").after(span);

return false;
                    }

//密码长度的验证
                    else if ($(this).val().length < 6 || $(this).val().length > 12) {
                        $(this).css("border", "2px red solid");
                        $(this).parent().parent().find("td.span").remove();
                        var span = "<td class='spanPwd3'><span>密码长度必须为6位到12位之间!</span></td>";
                        $(this).parent().parent().find("td.td2").after(span);

return false;
                    }
                    //如果密码不为数字
                    else if (isNaN($(this).val()) == true) {
                        $(this).css("border", "2px red solid");
                        $(this).parent().parent().find("td.span").remove();
                        var span = "<td class='spanPwd4'><span>密码必须为数字!</span></td>";
                        $(this).parent().parent().find("td.td2").after(span);
                        return false;
                    }

else {
                        //密码格式通过
                        $(this).css("border", "2px #cccccc solid");
                        $(this).parent().parent().find("td.span").remove();
                        var span = "<td class='spanPwd5'><span>密码格式通过!</span></td>";
                        $(this).parent().parent().find("td.td2").after(span);
                        return true;

}

});

}

//=====================邮箱验证开始========================
            function GetEmail() {
                $(".td3 input").blur(function () {
                    var patten = new RegExp(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]+$/);

//非空验证
                    if ($(".td3 input").val() == "") {
                        $(this).css("border", "2px red solid");
                        $(this).parent().parent().find("td.span").remove();
                        var spanxEmail = "<td class='spanPwd6'><span>邮箱不能为空!</span></td>";
                        $(this).parent().parent().find("td.td3").after(spanxEmail);
                        return false;
                    }
                    //邮箱格式验证

else if (patten.test($(".td3 input").val()) == false) {
                        $(this).css("border", "2px red solid");
                        $(this).parent().parent().find("td.span").remove();
                        var span = "<td class='spanPwd4'><span>邮箱格式不正确,请重新填写 !</span></td>";
                        $(this).parent().parent().find("td.td3").after(span);
                        return false;
                    } else {
                        //邮箱格式通过
                        $(this).css("border", "2px #cccccc solid");
                        $(this).parent().parent().find("td.span").remove();
                        var spanEmail = "<td class='spanPwd5'><span>邮箱格式通过!</span></td>";
                        $(this).parent().parent().find("td.td3").after(spanEmail);
                        return true;
                    }

});
            }

//==========================邮箱验证结束============================

//================用户名验证=================================
            function GetUserName() {

$(".td1 input").blur(function () {

//非空验证
                    if ($(this).val == "") {
                        $(this).css("border", "2px red solid");
                        $(this).parent().parent().find("td.span").remove();
                        var span = "<td class='spanPwd6'><span>用户名邮箱不能为空!</span></td>";
                        $(this).parent().parent().find("td.td1").after(span);
                        return false;
                    }
                    //用户名长度的验证    
                    else if ($(this).length < 4 || $(this).length > 20) {
                        $(this).css("border", "2px red solid");
                        $(this).parent().parent().find("td.span").remove();
                        var spanxEmail = "<td class='spanPwd6'><span>用户名格式不对,只能输入4-20字符!</span></td>";
                        $(this).parent().parent().find("td.td1").after(spanxEmail);
                        return false;
                    }

//用户名格式验证通过
                    else {
                        $(this).css("border", "2px #cccccc solid");
                        $(this).parent().parent().find("td.span").remove();
                        var spanUserName = "<td class='spanPwd5'><span>用户名格式通过!</span></td>";
                        $(this).parent().parent().find("td.td3").after(spanUserName);
                        return true;
                    }

});
            }

//========================点击按钮与服务器互交验证==============
            $("tr td input.btton1").click(function () {
                if (GetUserName() && GetEmail() && GetPassword()) {

var userName = $("td.td1 input").val(); //用户名
                    var userPwd = $("td.td2 input").val(); //密码
                    var userRepass = $("td.td3 input").val(); //确认密码
                    var email = $("td.td4 input").val(); //邮箱
                    GetAjax(userName, userPwd, userRepass, email);
                }
            });

function GetAjax(userName, userPwd, userRepass, email) {
                var json = [{ "userName": userName, "userPwd": userPwd, "userRepass": userRepass, "email": email}];
                $.post("ProcessResult.aspx?jon=" + json, function (data) {
                    if (data == "false") {
                        alert("用户名重复了,请重新输入!");
                    } else if (data == "ok") {
                        alert("注册成功!");
                    } else {
                        alert("对不起,你的输入有误,请检查输入");
                    }
                })
            }
        });
    </script>

5,实现如下效果:

我没有实现后台JQuery校验,下次有机会一并补上,这次先写到这里,只实现纯前端的效果。

QQ:534464222,欢迎交流

JQuery实现的智能表单提示的更多相关文章

  1. BootStrap 智能表单系列 七 验证的支持

    但凡是涉及到用户编辑信息然后保存的页面,都涉及到一个数据是否符合要求的检查,需要客服端和服务器端的校验的问题: 客服端的校验主要是为了提高用户体验,而服务器端的校验为了数据的合格性 该插件也为您支持到 ...

  2. 第86天:HTML5应用程序标签和智能表单

    一.HTML5应用程序标签 1.datalist需要数据载体 input list属性指向数据源 2.progress进度条 -webkit-appearance: none;   /*如果要改默认样 ...

  3. jquery通过class验证表单不能为空

    在开发系统时,往往都有某些表单数据为必填项,若用jQuery通过ID去验证,不仅会影响效率,还会有所遗漏,不易于后期维护. 本章将介绍如何利用jQuery,通过为表单配置class进行统一验证.(ID ...

  4. HTML5_智能表单

    1.HTML5中为了方便排版,可以使from中的表单标签脱离from的嵌套.方法:from指定ID,所有表单标签均添加from=id属性. <form action="http://l ...

  5. BootStrap 智能表单系列 十 自动完成组件的支持

    web开发中,肯定遇到像百度.google这种搜索的功能吧,那智能表单中的自动完成可以做什么呢,下面来揭晓: 1.包含像google.百度等类似的简单搜索 2.复杂结构的支持,比如说 输入产品编号,需 ...

  6. BootStrap 智能表单系列 九 表单图片上传的支持

    本章介绍如何在生成表单后,可以支持上传图片后可以及时预览图片 代码如下(连接地址:https://github.com/xiexingen/Bootstrap-SmartForm/blob/maste ...

  7. BootStrap 智能表单系列 六 表单数据绑定(编辑页面的数据绑定)

    本章介绍如何在生成表单后,将一个model的数据展示到form表单中(一般用于编辑页面) 代码如下(连接地址:https://github.com/xiexingen/Bootstrap-SmartF ...

  8. BootStrap 智能表单系列 八 表单配置json详解

    本章属于该系列的高级部分,将介绍表单中一些列的配置 1.config列的配置: 主要用于控制布局 :config:{autoLayout:true|'1,2,2,4'} true:根据配置项最里层的数 ...

  9. BootStrap 智能表单系列 四 表单布局介绍

    表单的布局分为自动布局和自定义布局两种: 自动布局就是根据配置项中第二级配置项中数组的长度来自动使用不同的bootstrap栅格,通过设置autoLayout为true可以实现自动布局 自动以布局就是 ...

随机推荐

  1. 蚯蚓(noip2016,贪心,单调性)

    题目描述 本题中,我们将用符号⌊c⌋ 表示对 c 向下取整,例如:⌊3.0⌋=⌊3.1⌋=⌊3.9⌋=3 . 蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭 ...

  2. JVM 垃圾回收机制和常见算法和 JVM 的内存结构和内存分配(面试题)

    一.JVM 垃圾回收机制和常见算法 Sun 公司只定义了垃圾回收机制规则而不局限于其实现算法,因此不同厂商生产的虚拟机采用的算法也不尽相同.GC(Garbage Collector)在回收对象前首先必 ...

  3. LINUX 启动图形界面和查看运行级别

    runlevel  查看当前运行级别 cat /etc/inittab   可以查看7个运行级别 init 6  ==  reboot == shuttdown -r now   都是表示重启的命令 ...

  4. Java OOP——第二章 继承

    1. 继承: ●继承是面向对象的三大特征之一,是JAVA实现代码重用的重要手段之一: ●继承是代码重用的一种方式,将子类共有的属性和行为放到父类中: ●JAVA只支持单继承,即每一个类只有一个父类,继 ...

  5. JS如何给ul下的所有li绑定点击事件,点击使其弹出下标和内容

    这是一个非常常见的面试题,出题方式多样,但考察点相同,下面我们来看看这几种方法:方法一: var itemli = document.getElementsByTagName("li&quo ...

  6. elasticsearch 5.x 系列之五 数据导入导出

    一.首先给大家发一个福利,分享一个elasticsearch 数据导出工具. esm github 源码地址: https://github.com/medcl/esm 下载编译好的对应elastic ...

  7. jenkins+maven+docker集成java发布(一)自动发布

    JAVA项目持续集成发布 标签(空格分隔): java jenkins 微服务中持续集成自动发布是很重要的一个环节,将不同的模块应用自动部署到一台或者N台服务器中如果采用人工部署的方式不太现实 git ...

  8. vue---day03

    1. Vue的生命周期 - 创建和销毁的时候可以做一些我们自己的事情 - beforeCreated - created - beforeMount - mounted - beforeUpdate ...

  9. maven之package与install的区别

    mvn clean package 先看命令的执行过程 mvn clean install 同样先看执行过程 mvn clean package依次执行了clean.resources.compile ...

  10. 仿造vue-resource的formdata传对象

    众插件不支持同步,也是没办法的事情,具体为啥就不分析了,确实搞不懂. 一直用vue-resource的post,觉得很舒服. 然,没办法只能仿造一个,自己提供一个同步方法 几个点先摆清楚 1. .th ...