zoukankan      html  css  js  c++  java
  • jQuery插件综合应用(一)注册

    一、介绍

    注册和登录是每个稍微有点规模的网站就应该有的功能。登陆功能与注册功能类似,也比注册功能要简单些。所以本文就以注册来说明jQuery插件的应用。

    jQuery插件的使用非常简单,如果只按照jQuery插件demo中的演示使用,基本上很快就能上手。但是如果按照我们的需要进行操作,还真需要一些技巧。下面会以nanoscroller进行说明。

    提到注册功能,无非就是对用户的注册信息进行验证,验证用户输入的注册信息是否合法,在jQuery插件中,validation插件可以实现验证功能。如果用户的信息合法,只需要用户同意“网站的协议”,就允许进行下一步操作————注册。“网站的协议”显示方式有多种,可以在当前页面,也可以在弹出层中。而本文介绍的是弹出层中显示”协议信息”,Lightbox_me插件可以实现弹出层功能。网站的“协议信息”的内容可能很多,为了提高用户的体验,我们可能需要使用滚动条来显示“协议信息”的部分信息。nanoscroller插件可以实现滚动条功能。

    二、使用的插件

    所以本文介绍的就是validation插件、Lightbox_me插件和nanoscroller插件的综合应用。在这里并不介绍这三个插件的使用方式,如果不明白的可以去插件官方了解使用方法。或者是看下面的3篇文章
    网站开发常用jQuery插件总结(四)验证插件validation
    网站开发常用jQuery插件总结(二)弹出层插件Lightbox_me
    网站开发常用jQuery插件总结(五)滚动条插件nanoscroller

    三、插件实现的功能

    为了实现注册,插件需要实现以下功能

    validation插件实现的功能
    1.验证email是否合法
    2.用户名是否合法
    3.信息的长度
    4.是否同意本站“协议信息”

    Lightbox_me插件实现的功能
    1.隐藏显示弹出层,弹出层中显示“协议信息”

    nanoscroller插件实现的功能
    1.通过滚动显示“协议信息”

    四、实现流程

    1.首先定义页面样式,如定义“注册”的样式、页面居中显示等。代码有点多,在这里就不贴出来了。可以在下面的测试页面中看到
    2.各插件的样式。插件必须能自定义样式。如需要定义“错误信息”的样式,弹出层的样式,滚动条的样式等。

    /*滚动条的样式*/
    .nano {
        background: white;
        width: 500px;
        height: 500px;
        font-size:12px;
        display:none;
    }
    .nano .content {
        padding: 20px;
    }
    .nano .content h2 {
        background:#f95252;
        color:white;
        margin:0;
        padding:8px;
        border:1px solid #ccc;
    }
    .nano .content h4 {
        padding:0;
        margin-top:8px;
        margin-bottom:4px;
        font-size:14px;
    }
    .nano .pane {
        background: #2A2931;
        width: 8px;
        right: 1px;
        margin: 5px;
        display:inherit;
    }
    .nano .pane .slider {
        background: #f95252;
        display:inherit;
    }
    /*验证的错误信息*/
    #login #operbox p .error{
            color:red;
        }

    3.js编码。涉及到三个插件,也是本文最主要的部分。这里只是大体介绍,需要的可以看测试页面中的代码。
    弹出层插件使用很简单。我们只需要设置一个连接,在连接被点击时,初始化滚动条插件,然后显示弹出层。

    $('#agreement').click(function(e) {
        $("#agreementbox").show();                             
        $("#agreementbox").nanoScroller({alwaysVisible: true,disableResize: true,alwaysVisible: true});
          $('#agreementbox').lightbox_me({
              centered: true
          });
      });
      //关闭弹出层
      $('#cancel').click(function(){
          $('#agreementbox').trigger('close');
      });

    弹出层的操作很简答,滚动条插件的初始化也很简单。但是两个插件结合起来,却出现了一个问题。
    就是滚动条显示不正确,如果按照官方demo使用,滚动条的显示正常,但是在这个实例中,我需要先隐藏“协议信息”,在用户点击按钮时出现,弹出层是出现了,也可以滚动,但是滚动条不正常,滚动条不随内容滚动。也就是层在隐藏的情况下,nanoscroller插件的滚动条无法初始化。
    经过测试,解决了问题。也就是上面代码中的$(“#agreementbox”).show();这就话,先显示,再初始化。

    弹出层、滚动信息正常了。下一步就是验证信息。validation插件在以前的文章中已经有过说明,所以这里不对以前的说明进行重复(可以看这篇文章网站开发常用jQuery插件总结(四)验证插件validation),在这篇文章中只对自定义验证方法提了一下。这里对自定义方法做试下说明。
    在验证信息时,我们需要验证用户名的格式,如只允许字母数字组成。我们便可以自定义方法,然后在方法中,使用正则表达式进行验证。如下代码所示

    //添加自定义方法regex,执行正则表达式验证
    $.validator.addMethod(
            "regex",
            function(value, element, regexp) {
                var re = new RegExp(regexp);
                return this.optional(element) || re.test(value);
            },
            "输入格式不正确"
    );
    //判断用户名的输入格式,与添加的方法名相匹配regex
    rules: {
        username: {
            required: true,
            minlength: 6,
            regex:/^[a-zA-Z0-9]{6,20}$/
        }
    },
    //验证未通过时,提示的信息
    messages: {
        username: {
            required: "用户名不能为空",
            minlength: jQuery.format("用户名至少由 {0} 字符组成"),
            regex:"用户名只能有数字字母组成"
        }
    }

    五、测试说明

    测试环境win7+ie8.chrome25.0.1364.97 m,firefox12.0。win7+ie8下无法显示圆角框
    chrome下测试图:

    测试地址:http://www.1100w.com/wp-content/uploads/2013/10/reg.html

  • 相关阅读:
    聊聊WS-Federation
    用双十一的故事串起碎片的网络协议(上)
    责任链模式的使用-Netty ChannelPipeline和Mina IoFilterChain分析
    最小化局部边际的合并聚类算法(中篇)
    最小化局部边际的合并聚类算法(上篇)
    UVaLive 7371 Triangle (水题,判矩形)
    UVaLive 7372 Excellence (水题,贪心)
    POJ 3312 Mahershalalhashbaz, Nebuchadnezzar, and Billy Bob Benjamin Go to the Regionals (水题,贪心)
    UVa 1252 Twenty Questions (状压DP+记忆化搜索)
    UVa 10817 Headmaster's Headache (状压DP+记忆化搜索)
  • 原文地址:https://www.cnblogs.com/imlions/p/3346244.html
Copyright © 2011-2022 走看看