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);
分享到:
- 2008-12-15 21:07
- 浏览 1759
- 评论(0)
- 论坛回复 / 浏览 (0 / 1768)
- 查看更多
相关推荐
在Dreamweaver这款强大的Web开发工具中,安装jQuery扩展可以帮助开发者更高效地构建动态网页。下面我们将详细讲解如何在Dreamweaver中安装jQuery扩展,以及相关的知识点。 首先,了解jQuery扩展的作用。jQuery扩展...
在本案例中,我们讨论的是一个专为Dreamweaver CS3设计的JQuery扩展,它能够增强Dreamweaver的代码提示和辅助功能,帮助开发者更高效地编写JQuery代码。 这个名为"JQuery MX-9 v.0.2.9"的扩展,是针对Dreamweaver ...
这里主要介绍我自己所写的利用构建在jQuery之上的工具库,该库的原文件名为jquery.brady.js,但由于是构建在jQuery之上的,所以在引入页面时,一定要先引入jQuery核心库,如jquery-1.3.2.min.js 该工具库的namespace...
为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中,我们经常看到这样的匿名函数结构: ```javascript ...
《jQuery扩展金属导航》 在Web开发领域,前端技术占据着至关重要的地位,而jQuery作为一款强大的JavaScript库,因其简洁的API和丰富的功能,深受开发者喜爱。本资源“jquery扩展金属导航.zip”聚焦于利用jQuery实现...
资源名称:Extending.jQuery—扩展jQuery 内容简介:《扩展jQuery》分为4部分,共14章,讲解了为jQuery库创建自定义扩展的方法,从最大可重用性的角度来设计和编写插件的方法,以及为jQuery UI编写小部件和特效的...
四、jQuery 的选择器机制:jQuery 的选择器基于 CSS 选择器,并扩展了更强大的功能,如 ID 选择器(#id)、类选择器(.class)、元素选择器(element)以及组合选择器($, +, >)等。这使得开发者能够方便地选取 DOM...
jquery扩展插件,jquery提供的html()方法,只能获取标签内部内容,本插件进行了扩展实现了取得包含标签自身的html,并解决了input/radio/checkbox/select等输入后无法取值问题。
dreamweaver jQuery 扩展 在dreamweaver中可以显示jQuery提示,开发时用起来很方便 分.zxp和.mxp两种扩展 cc2015,cs6均可用。 扩展安装需要到用Adobe Extension Manager,请自行在网上百度,免费下载。
本文将深入探讨如何使用jQuery扩展实现这一功能,并解释相关的核心知识点。 首先,`serialize()`是jQuery提供的一个方法,用于将表单元素转换为URL编码的字符串,适合于发送到服务器。然而,如果我们需要的是JSON...
Jquery自带的序列化,仅对form表单进行序列化,有很大的局限性,现在对齐进行扩展可以进行任意的序列化,包括json格式,字符串格式、数组格式,数组时自动转化为字符串等。并可以根据开发需要,随时扩展自己想要的...
[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扩展VS2008 Ajax应用的方法,该方法可以轻松实现Ajax功能,且不需要改变原有的VS2008开发架构。 Ajax技术的应用方式主要有两种:一是利用VS2008的或第三方的Ajax封装控件,另外一种是在...
为了满足特定需求,开发者经常会为jQuery编写扩展插件或拓展函数,以增强其功能。本篇文章将深入探讨如何进行jQuery扩展插件和拓展函数的编写。 首先,我们来理解jQuery插件的基本结构。一个简单的jQuery插件通常会...
这是一本带领你一步步编写自己的Jquery自定义插件或控件的好书,本书共14章,内容充实,是不本相当不错的前端开发学习资料
《jQuery自定义扩展日期插件详解》 在前端开发中,日期组件是不可或缺的一部分,它为用户提供了方便的日期选择和操作功能。本篇文章将详细探讨一个基于jQuery的可扩展日期插件,该插件允许在日期上进行编辑并保存,...
本文将深入探讨如何使用jQuery构建一个动态扩展的树形结构,这种结构通常用于表示层级关系的数据,例如组织结构、文件系统或者导航菜单。 首先,我们需要理解树形结构的基本概念。在计算机科学中,树是一种数据结构...
**jQuery Expand扩展条Demo详解** 在网页开发中,我们经常需要处理内容的展开与收起,以优化用户体验,节省页面空间。这就是`JQuery Expand`扩展条的作用所在。`JQuery Expand`是一种基于jQuery库的插件,它允许...