一、介绍

注册和登录是每个稍微有点规模的网站就应该有的功能。登陆功能与注册功能类似,也比注册功能要简单些。所以本文就以注册来说明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:;
padding:8px;
border:1px solid #ccc;
}
.nano .content h4 {
padding:;
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

jQuery插件综合应用(一)注册的更多相关文章

  1. jQuery插件综合应用(三)发布文章页面

    一.使用的插件 一个折叠的功能导航,由Akordeon插件实现.Nanoscroller插件与Tagit插件主要用于美化页面.这里只是测试,其实还可以综合使用其它的插件,例如将Akordeon插件换成 ...

  2. jQuery插件综合应用1

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

  3. jQuery插件综合应用(二)文字为主的页面

    一.介绍 文字内容是每个网站都有的内容,网站在展示文字内容时,总是比图片.视频等富媒体内容要难一些,因为富媒体容易被用户接受.尤其是越多的文字内容越难以被用户通篇的阅读,跳跃式阅读往往是阅读的主要方式 ...

  4. jQuery插件综合应用(四)头像设置

    一.操作流程 会员点击头像设置,弹出一个层,在层中,有上传图片的按钮,用户点击按钮上传图片,图片在服务器端按大小压缩保存(方便剪切).保存后,在前端显示,然后用户可修剪图片.选择图片区域,点击提交,保 ...

  5. jQuery插件编写及链式编程模型小结

    JQuery极大的提高了我们编写JavaScript的效率,让我们可以愉快的编写代码,做出各种特效.大多数情况下,我们都是使用别人开发的JQuery插件,今天我们就来看看如何把我们常用的功能做出JQu ...

  6. 全屏背景:15个jQuery插件实现全屏背景图像或媒体

    动态网站通常利用背景图像或预加载屏幕,以保证所有资源都加载到页面上,在浏览器中充分呈现.现在很多网站都炫耀自己的图像作为背景图像全屏背景,追溯到旧的Flash网站却用自己的方式在HTML资源重布局. ...

  7. 自定义jQuery插件Step by Step

    1.1.1 摘要 随着前端和后端技术的分离,各大互联网公司对于 Mobile First理念都是趋之若鹜的,为了解决网页在不同移动设备上的显示效果,其中一个解决方案就是Responsive Desig ...

  8. JQuery 插件FlexiGrid 之完全配置与使用

    博客分类: Java综合 jQuery配置管理jsonServlet数据结构  自己再做这个的时候.也是找了很多资料..但网上搜索了很多资料. 没有介绍的很全的. 鄙人就在此献丑一下. 来全面的介绍一 ...

  9. jQuery插件编写及链式编程模型

    jQuery插件编写及链式编程模型小结 JQuery极大的提高了我们编写JavaScript的效率,让我们可以愉快的编写代码,做出各种特效.大多数情况下,我们都是使用别人开发的JQuery插件,今天我 ...

随机推荐

  1. Qt5.0.2无法发布问题

    先从bin目录里面找到所缺失的dll,如果出现 可以找到libEGL.dll然后复制过来就可以了.

  2. Delphi- 内置数据库的使用例子BDE

    以前开发时经常使用一些大型的数据库,像这样小的数据库还是前段时间才看到.看看Delphi怎么使用内置的数据库, 先在BDE里拉两个数据库控件.DataBase和Table,然后再拉两个数据库控件Dat ...

  3. android httpClient 支持HTTPS的2种处理方式

    摘自: http://www.kankanews.com/ICkengine/archives/9634.shtml 项目中Android https或http请求地址重定向为HTTPS的地址,相信很 ...

  4. Http、Socket的区别

    转自:http://jingyan.baidu.com/article/08b6a591e07ecc14a80922f1.html 网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层 ...

  5. C++ Virtual详解

    转自:http://www.cnblogs.com/xd502djj/archive/2010/09/22/1832912.html Virtual是C++ OO机制中很重要的一个关键字.只要是学过C ...

  6. Java - 错误: "java.lang.ArrayIndexOutOfBoundsException: length=1; index=1"

    错误: "java.lang.ArrayIndexOutOfBoundsException: length=1; index=1" 本文地址: http://blog.csdn.n ...

  7. Oracle Enterprise Linux 64-bit下安装apache-tomcat-7.0.53步骤

    測试环境:VMware Workstation v9.0.2软件中安装好Oracle Enterprise Linux 5.8 64-bit虚拟机 安装软件:jdk-7u40-linux-x64.rp ...

  8. 从本地上传整个目录到hdfs的java程序

    首先在网上找了好久没有找到从本地文件系统上传整个目录到hdfs文件系统的程序,权威指南上也没有,都是单个文件上传,所以这里自己编写了一个程序,封装成jar包执行能够复制. 先说明一下代码:须要手动输入 ...

  9. cocos2d-x jsb 防止触摸事件传递

    在游戏中要实现消息弹窗,让用户点击确认,其他区域产生遮罩,阻挡下层的事件被点击到,这是个很常用的功能,在cocos2d-x中,可以通过为layer添加事件代理来实现: pDirector->ge ...

  10. mysql my.ini 详解

    linux下mysql配置文件my.cnf详解[转]   basedir = path 使用给定目录作为根目录(安装目录). character-sets-dir = path 给出存放着字符集的目录 ...