`
xmong
  • 浏览: 261599 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
JQuery扩展





目录
1 JQUERY扩展 1
1.1 JQUERY的实例扩展 1
1.2 JQUERY的EXTEND扩展 1
2 JQUERY扩展参数验证器 1
2.1 JQUERY扩展参数验证器 1
2.2 参数验证器使用 3
3 JQUERY扩展JSON解析器 4
3.1 JQUERY将字符串转化为JSON对象 4
3.2 JQUERY将JSON对象转化为字符串 4



1 JQuery扩展
1.1 JQuery的实例扩展
Jquery中$是指jquery的命名空间,可以在$命名空间上加上方法及属性来达到对jquery实列的一个扩展。
如:扩展一个ajax字符转器。
$(function(){
		$.ajaxStr = function(str){
			str = str.replace(/%/g, "%25");  
			str = str.replace(/\&/g, "%26");  
			str = str.replace(/\+/g, "%2B");
			str = str.replace(/\'/g, "%27");
			str = str.replace(/\"/g, "%22");
			return str;
		};
});

在其他js文件中就可以直接调用该法。
1.2 JQuery的extend扩展
extend(ext,src1,src2,src3...);
它的含义是将src1,src2,src3...合并到ext中,返回值为合并后的dest,由此可以看出该方法合并后,是修改了ext的结构的。
如果想要得到合并的结果却又不想修改ext的结构,如下:
var result = $.extend({},src1,src2,src3...)//也就是将"{}"作为ext参数。
这样就可以将src1,src2,src3...进行合并,然后将合并结果返回给result。
2 JQuery扩展参数验证器
2.1 JQuery扩展参数验证器
$(function(){
	
	$.regCom = function(regAttr){
		return $.regCom.attr[regAttr];
	};

	/**
	 * 验证表达式
	 */
	$.regCom.attr = {
							 email:/^([\.a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]+){1,2})$/,
		//匹配名字只能输入数字或字母和下划线
		name:/^\w{1,128}$/,
		//8-20位全字符,不能是纯数字或纯字母
		password:/^(?![0-9]+$)(?![a-zA-Z]+$).{8,20}$/,
		//必填
		required:/\S+/,
		//描述
		note:/^[\s\S]{0,512}$/,
			
	};
	
	$.regMsg = function(regAttr){
		return $.regMsg.attr[regAttr];
	};

	/**
	 * 验证提示信息
	 */
	$.regMsg.attr = {
		defMsg:"Please enter a valid argument.",
		
		reqMsg:"This field is required.",
		pwdMsg:"Please enter a valid password.",
		nameMsg:'Allow number,letter and "_".',
		noteMsg:"Please keep within 512 characters",
		
	};
	
/**
	 * 验证器实现
	 */
$.validator = function(obj, alt){
		var val = $(obj).val(),flag = true;
		var validation = $.parseJSON($(obj).attr('valid'));
		if(alt == undefined ) alt = $(obj).parent().parent().find(".msg")[0];
		if(alt == undefined ) alt = $(obj).parents('tr').find(".msg")[0];
		if(alt == undefined ) alt = $(obj).parents('table').find(".msg");
		$(validation).each(function(){
			var reg = $.regCom(this.reg) == undefined ? new RegExp(this.reg) : $.regCom(this.reg);
			var msg = $.regMsg(this.msg) == undefined ? this.msg : $.regMsg(this.msg);
			if(!reg.test(val)){
				$(alt).text(msg);
				flag = false;
				return false;
			}else{
				$(alt).text("");
			}
		});	
		return flag;
	};


});


2.2 参数验证器使用
<div>
      <table>
        <tr><td width="30%">
<span class='red'>*</span>Project Name:</td>
        <td width="30%">
<input type="text" name="name" maxlength="80" valid='[{"reg":"required","msg":"Please input a project name."},{"reg":"name", "msg":"nameMsg"}]' class="valid"/></td>
        <td><span class="msg red"></span></td></tr>
        <tr><td>Project Note:</td><td>
<textarea name="note" class="valid" valid='[{"reg":"note","msg":"noteMsg"}]'></textarea></td>
<td><span class="msg red"></span></td></tr>
      </table>
  </div>

<script type="text/javascript">
	/************参数验证****************/
	$(".valid").blur(function(){
		$.validator(this);
	});
</script>

当输入框和描述框失去焦点的时候,就会触发焦点失去事件。使得参数valid的json字符串来验证并给出相应的提示信息。

3 JQuery扩展json解析器
3.1 JQuery将字符串转化为json对象
Jquery中提供了$.parseJSON(jsonStr)方法将json字符串转化为json对象。
也可以使用浏览器中自带的JSON对象的JSON.parse(jsonStr)将json字符串转化为json对象。
3.2 JQuery将json对象转化为字符串
要将json对象转化为字符串可以使用浏览器中的JSON对象的JSON.stringify(jsonObj)方法将json对象转化为json字符串。但是很多低版本浏览器不支持JSON对象,如IE7,IE6等。

JQuery中没有提供将json对象转化为字符串的方法,当然也可以引入一些json插件可以实现该功能。下面是自己写的一个简单json解析器,可以见json对象转化为json字符串。

$(function(){

 $.jsonToString = function (obj){
		
		var arr = [];
		var str = "";
		if (isArr(obj)) {
            for (var key in obj){
				alert(key);
                arr.push($.jsonToString(obj[key]));
            }
            str = '[' + arr.join(',') + ']';
        } else if (isObj(obj)) {
            for (var key in obj) {
			   obj[key] = isStr(obj[key]) ? '"'+obj[key]+'"':$.jsonToString(obj[key]);
			   arr.push('"'+key+'":'+obj[key]);
			   
            }
            str = '{' + arr.join(',') + '}';
        }
		return str;
	};
	
	
	function isArr(obj){
		return Object.prototype.toString.apply(obj) === '[object Array]';
	};
	
	function isObj(obj){
		return Object.prototype.toString.apply(obj) === '[object Object]';
	};
	
	function isStr(obj){
		return Object.prototype.toString.apply(obj) === '[object String]';
	}

});





分享到:
评论

相关推荐

    Dreamweaver安装jquery扩展

    在Dreamweaver这款强大的Web开发工具中,安装jQuery扩展可以帮助开发者更高效地构建动态网页。下面我们将详细讲解如何在Dreamweaver中安装jQuery扩展,以及相关的知识点。 首先,了解jQuery扩展的作用。jQuery扩展...

    Dreamweaver CS3 的 JQuery 扩展软件

    在本案例中,我们讨论的是一个专为Dreamweaver CS3设计的JQuery扩展,它能够增强Dreamweaver的代码提示和辅助功能,帮助开发者更高效地编写JQuery代码。 这个名为"JQuery MX-9 v.0.2.9"的扩展,是针对Dreamweaver ...

    教你如何做一个自己的jQuery插件,jQuery扩展笔记

    这篇文章将指导你如何构建一个自己的jQuery插件,理解jQuery扩展的核心原理。 首先,我们要明白jQuery插件的本质是一个包装在jQuery对象上的函数。在jQuery中,我们经常看到这样的匿名函数结构: ```javascript ...

    利用jquery扩展的验证工具库

    这里主要介绍我自己所写的利用构建在jQuery之上的工具库,该库的原文件名为jquery.brady.js,但由于是构建在jQuery之上的,所以在引入页面时,一定要先引入jQuery核心库,如jquery-1.3.2.min.js 该工具库的namespace...

    jquery扩展金属导航.zip

    《jQuery扩展金属导航》 在Web开发领域,前端技术占据着至关重要的地位,而jQuery作为一款强大的JavaScript库,因其简洁的API和丰富的功能,深受开发者喜爱。本资源“jquery扩展金属导航.zip”聚焦于利用jQuery实现...

    jQuery扩展将复杂form表单转成json对象

    本文将深入探讨如何使用jQuery扩展实现这一功能,并解释相关的核心知识点。 首先,`serialize()`是jQuery提供的一个方法,用于将表单元素转换为URL编码的字符串,适合于发送到服务器。然而,如果我们需要的是JSON...

    jQuery扩展插件和拓展函数的写法-代码

    本篇文章将深入探讨如何进行jQuery扩展插件和拓展函数的编写。 首先,我们来理解jQuery插件的基本结构。一个简单的jQuery插件通常会定义一个新的方法,这个方法可以在jQuery对象上调用。以下是一个基本的插件模板:...

    利用jQuery扩展VS2008 Ajax应用.pdf

    本文将介绍一种利用jQuery扩展VS2008 Ajax应用的方法,该方法可以轻松实现Ajax功能,且不需要改变原有的VS2008开发架构。 Ajax技术的应用方式主要有两种:一是利用VS2008的或第三方的Ajax封装控件,另外一种是在...

    Jquery扩展插件,图片异步分页浏览

    本主题聚焦于一个特定的应用场景:使用jQuery扩展插件实现图片的异步分页浏览。这种技术在现代网页设计中十分常见,特别是在图片展示类网站或社交媒体平台,能够有效地提高用户体验,减少页面加载时间。 首先,我们...

    jquery扩展插件,取得包含标签自身的html

    jquery扩展插件,jquery提供的html()方法,只能获取标签内部内容,本插件进行了扩展实现了取得包含标签自身的html,并解决了input/radio/checkbox/select等输入后无法取值问题。

    [jQuery] jQuery 扩展开发教程 (英文版)

    [Manning Publications] jQuery 扩展开发教程 (英文版) [Manning Publications] Extending jQuery (E-Book) ☆ 出版信息:☆ [作者信息] Keith Wood [出版机构] Manning Publications [出版日期] 2013年08月23...

    dreamweaver jQuery 扩展

    dreamweaver jQuery 扩展 在dreamweaver中可以显示jQuery提示,开发时用起来很方便 分.zxp和.mxp两种扩展 cc2015,cs6均可用。 扩展安装需要到用Adobe Extension Manager,请自行在网上百度,免费下载。

    第17周-第22章节-Python3.5-JQuery扩展.avi

    第17周-第22章节-Python3.5-JQuery扩展.avi

    第17周-第20章节-Python3.5-JQuery扩展以及自动执行函数的应用.avi

    第17周-第20章节-Python3.5-JQuery扩展以及自动执行函数的应用.avi

    jquery扩展demo

    为jquery编写的扩展,仿easyui,清晰简洁,适合初学者,包含扩展jquery.accordion.js、jquery.combobox.js、jquery.datagrid.js、jquery.datebox.js、jquery.dialog.js、jquery.form.js、jquery.layout.js、jquery....

    4、jQuery原理,模拟实现jQuery扩展1

    四、jQuery 的选择器机制:jQuery 的选择器基于 CSS 选择器,并扩展了更强大的功能,如 ID 选择器(#id)、类选择器(.class)、元素选择器(element)以及组合选择器($, +, &gt;)等。这使得开发者能够方便地选取 DOM...

    文本域光标操作的jQuery扩展分享

    【jQuery扩展:文本域光标操作】 在网页开发中,我们常常需要对文本域(`&lt;textarea&gt;`)进行各种操作,比如获取光标位置、设置选区、插入文本或删除字符。为了方便开发者,可以使用jQuery扩展来实现这些功能。本文将...

    JQuery扩展包-多种序列化方式

    Jquery自带的序列化,仅对form表单进行序列化,有很大的局限性,现在对齐进行扩展可以进行任意的序列化,包括json格式,字符串格式、数组格式,数组时自动转化为字符串等。并可以根据开发需要,随时扩展自己想要的...

    Jquery扩展 编写自已的Jquery插件

    这是一本带领你一步步编写自己的Jquery自定义插件或控件的好书,本书共14章,内容充实,是不本相当不错的前端开发学习资料

    jQuery扩展插件jQuery.dragmove.zip

    jQuery.dragmove 是 DOM 元素拖拽扩展插件。 支持的浏览器: – Google Chrome– Safari ( Desktop and Mobile )– Internet Explorer ( 9, 10, 11 )– Firefox 标签:jQuery

Global site tag (gtag.js) - Google Analytics