- 浏览: 167253 次
- 性别:
- 来自: 武汉
-
文章分类
- 全部博客 (95)
- oracle (7)
- java 基础 (10)
- web层 (3)
- 框架技术 (0)
- eclipse技巧 (2)
- 重构 (2)
- 架构 (1)
- 缓存 (11)
- 分布式多线程编程 (5)
- jquery (8)
- ibatis (3)
- spring API (1)
- maven (1)
- spring (4)
- js (12)
- 正则表达式 (1)
- Velocit (1)
- 杂七杂八 (3)
- XSS跨域攻击 (1)
- appfuse (2)
- Simple-Spring-Memcached (3)
- spring batch (11)
- spring integration (2)
- Teiid 8.0 (0)
- Linux 命令 (1)
最新评论
-
luxianping:
怎么根据命名空间来删除缓存? 比如说用户对应的菜单,当有用户 ...
使用SSM注解做缓存操作 -
vemacitri_b:
mowengaobo 写道你可以这样理解key。为什么不单独放 ...
使用SSM注解做缓存操作 -
mowengaobo:
你可以这样理解key。为什么不单独放个参数出来如 @Rea ...
使用SSM注解做缓存操作 -
夜神月:
目前我在dao曾有如下的注解配置:@ReadThroughSi ...
使用SSM注解做缓存操作
2008
-
10
-
20
客户端验证的极品--jQuery.validator
最近在做一个用户注册登录的页面,资料查寻过程中发现了一个非常不错的客户端验证的极品-jQuery.validate。
它是著名的JavaScript包jQuery的一个插件,其实它还有其它的一些插件应该都爽,有待慢慢来学习
官方地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation/
jQuery用户手册:http://jquery.org.cn/visual/cn/index.xml
开发使用起来非常简单明了,
我的代码:
网上的资料有人说,它跟prototype包会有冲突,我还没有同时使用过,这点不是很清楚,但我是发现一个问题:
对于最小/大长度的验证方法,作者可能考虑到大家的命名习惯不同,同时做了minLength和minlength(maxLength和maxlength)方法,应该哪一个都是可以的,但对于用户Message来说,只能够定义针对minlength(maxlength),才能调用用户自定义的Message,
否则只是调用包的默认Message,但具体原因还没有查清楚。同时,这个插件提供了本地化的消息,但对于我这里初学者来说,怎么使用它还有待摸索!
它是著名的JavaScript包jQuery的一个插件,其实它还有其它的一些插件应该都爽,有待慢慢来学习
官方地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation/
jQuery用户手册:http://jquery.org.cn/visual/cn/index.xml
开发使用起来非常简单明了,
我的代码:
- $(document).ready(function(){
- /* 设置默认属性 */
- $.validator.setDefaults({
- submitHandler: function(form) { form.submit(); }
- });
- // 中文字两个字节
- jQuery.validator.addMethod( "byteRangeLength" , function(value, element, param) {
- var length = value.length;
- for (var i = 0 ; i < value.length; i++){
- if (value.charCodeAt(i) > 127 ){
- length++;
- }
- }
- return this .optional(element) || ( length >= param[ 0 ] && length <= param[ 1 ] );
- }, "请确保输入的值在3-15个字节之间(一个中文字算2个字节)" );
- /* 追加自定义验证方法 */
- // 身份证号码验证
- jQuery.validator.addMethod( "isIdCardNo" , function(value, element) {
- return this .optional(element) || isIdCardNo(value);
- }, "请正确输入您的身份证号码" );
- // 字符验证
- jQuery.validator.addMethod( "userName" , function(value, element) {
- return this .optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);
- }, "用户名只能包括中文字、英文字母、数字和下划线" );
- // 手机号码验证
- jQuery.validator.addMethod( "isMobile" , function(value, element) {
- var length = value.length;
- return this .optional(element) || (length == 11 && /^((( 13 [ 0 - 9 ]{ 1 })|( 15 [ 0 - 9 ]{ 1 }))+\d{ 8 })$/.test(value));
- }, "请正确填写您的手机号码" );
- // 电话号码验证
- jQuery.validator.addMethod( "isPhone" , function(value, element) {
- var tel = /^(\d{ 3 , 4 }-?)?\d{ 7 , 9 }$/g;
- return this .optional(element) || (tel.test(value));
- }, "请正确填写您的电话号码" );
- // 邮政编码验证
- jQuery.validator.addMethod( "isZipCode" , function(value, element) {
- var tel = /^[ 0 - 9 ]{ 6 }$/;
- return this .optional(element) || (tel.test(value));
- }, "请正确填写您的邮政编码" );
- $(regFrom).validate({
- /* 设置验证规则 */
- rules: {
- userName: {
- required: true ,
- userName: true ,
- byteRangeLength: [ 3 , 15 ]
- },
- password: {
- required: true ,
- minLength: 5
- },
- repassword: {
- required: true ,
- minLength: 5 ,
- equalTo: "#password"
- },
- question: {
- required: true
- },
- answer: {
- required: true
- },
- realName: {
- required: true
- },
- cardNumber: {
- isIdCardNo: true
- },
- mobilePhone: {
- isMobile: true
- },
- phone: {
- isPhone: true
- },
- email: {
- required: true ,
- email: true
- },
- zipCode: {
- isZipCode: true
- }
- },
- /* 设置错误信息 */
- messages: {
- userName: {
- required: "请填写用户名" ,
- byteRangeLength: "用户名必须在3-15个字符之间(一个中文字算2个字符)"
- },
- password: {
- required: "请填写密码" ,
- minlength: jQuery.format( "输入{0}." )
- },
- repassword: {
- required: "请填写确认密码" ,
- equalTo: "两次密码输入不相同"
- },
- question: {
- required: "请填写您的密码提示问题"
- },
- answer: {
- required: "请填写您的密码提示答案"
- },
- realName: {
- required: "请填写您的真实姓名"
- },
- email: {
- required: "请输入一个Email地址" ,
- email: "请输入一个有效的Email地址"
- }
- },
- /* 错误信息的显示位置 */
- errorPlacement: function(error, element) {
- error.appendTo( element.parent() );
- },
- /* 验证通过时的处理 */
- success: function(label) {
- // set as text for IE
- label.html( " " ).addClass( "checked" );
- },
- /* 获得焦点时不验证 */
- focusInvalid: false ,
- onkeyup: false
- });
- // 输入框获得焦点时,样式设置
- $( 'input' ).focus(function(){
- if ($( this ).is( ":text" ) || $( this ).is( ":password" ))
- $( this ).addClass( 'focus' );
- if ($( this ).hasClass( 'have_tooltip' )) {
- $( this ).parent().parent().removeClass( 'field_normal' ).addClass( 'field_focus' );
- }
- });
- // 输入框失去焦点时,样式设置
- $( 'input' ).blur(function() {
- $( this ).removeClass( 'focus' );
- if ($( this ).hasClass( 'have_tooltip' )) {
- $( this ).parent().parent().removeClass( 'field_focus' ).addClass( 'field_normal' );
- }
- });
- });
$(document).ready(function(){ /* 设置默认属性 */ $.validator.setDefaults({ submitHandler: function(form) { form.submit(); } }); // 中文字两个字节 jQuery.validator.addMethod("byteRangeLength", function(value, element, param) { var length = value.length; for(var i = 0; i < value.length; i++){ if(value.charCodeAt(i) > 127){ length++; } } return this.optional(element) || ( length >= param[0] && length <= param[1] ); }, "请确保输入的值在3-15个字节之间(一个中文字算2个字节)"); /* 追加自定义验证方法 */ // 身份证号码验证 jQuery.validator.addMethod("isIdCardNo", function(value, element) { return this.optional(element) || isIdCardNo(value); }, "请正确输入您的身份证号码"); // 字符验证 jQuery.validator.addMethod("userName", function(value, element) { return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value); }, "用户名只能包括中文字、英文字母、数字和下划线"); // 手机号码验证 jQuery.validator.addMethod("isMobile", function(value, element) { var length = value.length; return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/.test(value)); }, "请正确填写您的手机号码"); // 电话号码验证 jQuery.validator.addMethod("isPhone", function(value, element) { var tel = /^(\d{3,4}-?)?\d{7,9}$/g; return this.optional(element) || (tel.test(value)); }, "请正确填写您的电话号码"); // 邮政编码验证 jQuery.validator.addMethod("isZipCode", function(value, element) { var tel = /^[0-9]{6}$/; return this.optional(element) || (tel.test(value)); }, "请正确填写您的邮政编码"); $(regFrom).validate({ /* 设置验证规则 */ rules: { userName: { required: true, userName: true, byteRangeLength: [3,15] }, password: { required: true, minLength: 5 }, repassword: { required: true, minLength: 5, equalTo: "#password" }, question: { required: true }, answer: { required: true }, realName: { required: true }, cardNumber: { isIdCardNo: true }, mobilePhone: { isMobile: true }, phone: { isPhone: true }, email: { required: true, email: true }, zipCode: { isZipCode:true } }, /* 设置错误信息 */ messages: { userName: { required: "请填写用户名", byteRangeLength: "用户名必须在3-15个字符之间(一个中文字算2个字符)" }, password: { required: "请填写密码", minlength: jQuery.format("输入{0}.") }, repassword: { required: "请填写确认密码", equalTo: "两次密码输入不相同" }, question: { required: "请填写您的密码提示问题" }, answer: { required: "请填写您的密码提示答案" }, realName: { required: "请填写您的真实姓名" }, email: { required: "请输入一个Email地址", email: "请输入一个有效的Email地址" } }, /* 错误信息的显示位置 */ errorPlacement: function(error, element) { error.appendTo( element.parent() ); }, /* 验证通过时的处理 */ success: function(label) { // set as text for IE label.html(" ").addClass("checked"); }, /* 获得焦点时不验证 */ focusInvalid: false, onkeyup: false }); // 输入框获得焦点时,样式设置 $('input').focus(function(){ if($(this).is(":text") || $(this).is(":password")) $(this).addClass('focus'); if ($(this).hasClass('have_tooltip')) { $(this).parent().parent().removeClass('field_normal').addClass('field_focus'); } }); // 输入框失去焦点时,样式设置 $('input').blur(function() { $(this).removeClass('focus'); if ($(this).hasClass('have_tooltip')) { $(this).parent().parent().removeClass('field_focus').addClass('field_normal'); } }); });
网上的资料有人说,它跟prototype包会有冲突,我还没有同时使用过,这点不是很清楚,但我是发现一个问题:
对于最小/大长度的验证方法,作者可能考虑到大家的命名习惯不同,同时做了minLength和minlength(maxLength和maxlength)方法,应该哪一个都是可以的,但对于用户Message来说,只能够定义针对minlength(maxlength),才能调用用户自定义的Message,
否则只是调用包的默认Message,但具体原因还没有查清楚。同时,这个插件提供了本地化的消息,但对于我这里初学者来说,怎么使用它还有待摸索!
发表评论
-
关于Jquery和radio的若干
2012-08-04 15:29 1103如何通过Jquery获取radio的值 ... -
jquery radio/checkbox change 事件不能触发的问题
2012-03-05 10:13 8087需求 <input type="radio& ... -
用jQuery在IFRAME里取得父窗口的某个元素的值
2010-12-21 10:37 1689只好用DOM方法与jquery方法结合的方式实 ... -
jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关
2010-11-30 16:37 990jquery radio取值,checkbox取值 ... -
jquery 3种页面加载初始化的方法
2010-11-30 12:45 1458jquery 3种页面加载初始化的方法 2009-12- ... -
JQuery弹出层效果制作
2010-11-26 17:04 1827JQuery弹出层效果制作 2010-09-17 JQ ... -
jquery select option 操作相关知识
2010-11-26 15:21 2164jQuery 是一个非常强大的JS类库,现在越用觉得越好用 ...
相关推荐
### jsp客户端验证详解:利用jQuery.validator实现全面的表单验证 #### 一、概述 在Web开发中,客户端验证是提升用户体验、减轻服务器压力的重要手段之一。通过使用`jQuery.validator`插件,我们可以轻松地为HTML...
街道级行政区划shp矢量数据,wgs84坐标系,下载直接使用
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
街道级行政区划shp矢量数据,wgs84坐标系,下载直接使用
轻量级密码算法LBlock的FPGA优化实现.docx
街道级行政区划shp矢量数据,wgs84坐标系,下载直接使用
Git 资料 progit-zh-v2.1.1.pdf
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
篮球计分器FPGA附程序..doc
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
内容概要:本文档全面介绍了Linux开发的基础知识、应用场景、环境搭建、常用命令、Shell脚本编程以及C/C++和Python开发等内容。首先阐述了Linux开发的重要性及其在服务器端开发、嵌入式开发和系统运维等领域的广泛应用。接着详细讲解了如何选择合适的Linux发行版并安装系统,配置开发环境,包括安装必要的开发工具和配置SSH服务。文档还深入讲解了Linux基础命令,如文件和目录操作、文件内容查看与编辑、进程管理和权限管理。此外,介绍了Shell脚本编程的基本语法,包括变量、条件语句、循环语句和函数定义。针对C/C++和Python开发,文档分别讲解了编译器安装、程序编写与编译、调试方法及使用虚拟环境等内容。最后,简要介绍了Linux内核开发的相关知识,包括下载编译内核、内核模块开发等,并推荐了相关学习资源。 适合人群:对Linux开发感兴趣的初学者及有一定经验的研发人员,尤其是希望深入掌握Linux开发技能的开发者。 使用场景及目标:①掌握Linux开发环境的搭建与配置;②熟悉Linux基础命令和Shell脚本编程;③学习C/C++和Python在Linux下的开发流程;④了解Linux内核开发的基本概念和技术。 阅读建议:此文档内容丰富,涵盖面广,建议读者根据自身需求选择性阅读,并结合实际操作进行练习。特别是对于初学者,应先掌握基础命令和开发环境的搭建,再逐步深入到编程语言和内核开发的学习。
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
街道级行政区划shp数据,wgs84坐标系,直接使用。
内容概要:本文档《word练习题.docx》是一份详细的Word操作练习指南,涵盖了从基础到高级的各种功能。文档分为三个主要部分:内容编辑、页面布局和高效文档。内容编辑部分包括文本格式化、段落设置、项目编号、制表位、边框与底纹等练习;页面布局部分涉及分节符、分栏、页眉页脚、水印等设置;高效文档部分则聚焦于样式管理、导航窗格、题注、书签、超级链接、脚注与尾注、交叉引用等功能。每个练习都有具体的操作步骤,帮助用户掌握Word的各种实用技巧。 适合人群:适用于Word初学者及希望提高Word技能的中级用户,尤其是需要频繁使用Word进行文档编辑和排版的办公人员。 使用场景及目标:①帮助用户熟悉Word的基本操作,如文本编辑、格式设置等;②提升用户的文档排版能力,学会设置复杂的页面布局;③提高工作效率,掌握高效文档管理技巧,如样式应用、题注和交叉引用等。 其他说明:此文档不仅提供了具体的练习题目,还附带了详细的步骤说明,用户可以根据指引逐步完成每个练习。此外,文档中的一些练习涉及到智能文档和Office智能客户端的应用,有助于用户了解Word在企业级应用中的潜力。建议用户按照章节顺序逐步学习,实践每一个练习,以达到最佳的学习效果。
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
全球腐败感知数据(2000-2023)——3000行 33个指标 关于数据集 该数据集包含3000行和33列,涵盖了2000年至2023年的腐败感知指数(CPI)数据和各种治理指标。它包括国家排名、分数和其他指标,如公共部门腐败、司法腐败、贿赂指数、商业道德、民主指数、法治、政府效率、经济指标和人类发展指数。 这些数据可用于: 腐败趋势分析 腐败对GDP、人类发展指数和治理的影响 跨国比较 数据可视化和机器学习模型 该数据集对研究人员、数据分析师、政策制定者和对研究全球腐败趋势非常有用。
毕业设计(论文) 基于FPGA的数字频率计设计.doc
街道级行政区划shp数据,wgs84坐标系,直接使用。
NTI1NDU3NTAyODMwOTQxMzI0M18xNzQ0Nzk1MTk1OTgz_6.JPG