`
achun
  • 浏览: 315249 次
  • 性别: Icon_minigender_1
  • 来自: 河南郑州
社区版块
存档分类
最新评论

jQuery扩展ajaxName

阅读更多

jQuery扩展ajaxName,用于ajax提交方法的页面数据获取,根据页面元素的name生成相应的js对象,然后可以把这个对象传给JSON编码库进行编码向后台提交,支持数组,支持.表达式

 

/*
 * jQuery Ajax By Name Plugin
 *
 * licensed under the MIT licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 * Author achun (achun.shx at gmail.com)
 * Create Date: 2008-6-21
 * Last Date: 2008-6-21
 * Revision:2.8.6.21
 */
(function($) {
/**
 * 获取鼠标点击的元素坐标
 */	
$.fn.clickPos = function(e){
  var pos ={x:0,y:0};
  if (e.offsetX != undefined) {
    pos.x = e.offsetX;
    pos.y = e.offsetY;
  } else if (typeof $.fn.offset == 'function') {
    var offset = this.offset();
    pos.x = e.pageX - offset.left;
    pos.y = e.pageY - offset.top;
  } else {
    pos.x = e.pageX - this[0].offsetLeft;
    pos.y = e.pageY - this[0].offsetTop;
  }	
  return pos;
}
/**
 * ajaxName() 根据标签name属性来提交数据,替代form提交方式
 * options:{//与ajax的options是一样的结构
 *	data:{}//要附加提交的数据
 * }
 * successful:如果元素有有效值,defualt:true
 */
$.fn.ajaxName = function(options,successful) {
	if(options==undefined) options={};
	options.data = options.data || {};
  successful = successful == undefined ? true:successful;
	var data = {};
	var name= options.name || '';
	this.each(function() {
  	var el=this,o=$(this),n = o.attr('name'),hasval = o.attr('value')!=undefined;
  	if (!n) return;
  	var t = el.type, tag = el.tagName.toLowerCase();
		if (n=='/'){
			if (name=='') name = hasval?o.attr('value'):o.text();
			return;
		}
    if (successful && (el.disabled || t == 'reset' || t == 'button' ||
	      (t == 'checkbox' || t == 'radio') && !el.checked ||
	      (t == 'submit' || t == 'image') ||
	      tag == 'select' && el.selectedIndex == -1))
      return;
    var v= hasval? o.attr('value') :o.hasClass('ValueByText')?o.text():o.html();
    if (v == undefined) return;
  	if (n.indexOf('.')>0){
    	n=n.split('.');
    	var len=n.length - 1;
    	var b=data;
      $.each(n,function(i){
		    if (i!=len){
		    	if(b[this] == undefined) b[this]={};
	        b=b[this];
		    }else
	        b[this]=v;
    	});
  	}else if (n.indexOf('[]')>0){
    	n=n.slice(0,n.length-2);
    	if(data[n] == undefined) data[n]=[];
    	data[n].push(v);
		}else{
			data[n]=v;
		}
  });
  var dat={};
  if (name){
  	dat[name]=data;
	  data=dat[name];
  }else
  	dat=data;
  for (var o in options.data){
  	data[o]=options.data[o];
  };
  options.data=dat;
  return options.data;
};
})(jQuery);
 
分享到:
评论

相关推荐

    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.brady.js,但由于是构建在jQuery之上的,所以在引入页面时,一定要先引入jQuery核心库,如jquery-1.3.2.min.js 该工具库的namespace...

    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....

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

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

    jquery扩展金属导航.zip

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

    Extending.jQuery—扩展jQuery

    资源名称:Extending.jQuery—扩展jQuery 内容简介:《扩展jQuery》分为4部分,共14章,讲解了为jQuery库创建自定义扩展的方法,从最大可重用性的角度来设计和编写插件的方法,以及为jQuery UI编写小部件和特效的...

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

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

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

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

    dreamweaver jQuery 扩展

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

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

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

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

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

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

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

    jquery ui dialog 扩展

    《jQuery UI Dialog扩展详解》 在前端开发中,jQuery UI Dialog是一个非常实用的组件,它提供了弹出对话框的功能,可以用于警告、确认、信息提示等场景。这篇内容将深入探讨jQuery UI Dialog的扩展,包括如何自定义...

    利用jQuery扩展VS2008 Ajax应用.pdf

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

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

    为了满足特定需求,开发者经常会为jQuery编写扩展插件或拓展函数,以增强其功能。本篇文章将深入探讨如何进行jQuery扩展插件和拓展函数的编写。 首先,我们来理解jQuery插件的基本结构。一个简单的jQuery插件通常会...

    Jquery扩展 编写自已的Jquery插件

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

    jquery 自定义扩展日期插件

    《jQuery自定义扩展日期插件详解》 在前端开发中,日期组件是不可或缺的一部分,它为用户提供了方便的日期选择和操作功能。本篇文章将详细探讨一个基于jQuery的可扩展日期插件,该插件允许在日期上进行编辑并保存,...

    使用jquery做的动态扩展的tree

    本文将深入探讨如何使用jQuery构建一个动态扩展的树形结构,这种结构通常用于表示层级关系的数据,例如组织结构、文件系统或者导航菜单。 首先,我们需要理解树形结构的基本概念。在计算机科学中,树是一种数据结构...

    JQuery Expand扩展条Demo

    **jQuery Expand扩展条Demo详解** 在网页开发中,我们经常需要处理内容的展开与收起,以优化用户体验,节省页面空间。这就是`JQuery Expand`扩展条的作用所在。`JQuery Expand`是一种基于jQuery库的插件,它允许...

Global site tag (gtag.js) - Google Analytics