jQuery表单数据收集成key/value对象
来源:互联网 发布:海上知生机搜救队视频 编辑:程序博客网 时间:2024/06/05 01:53
常常遇到需要$.get或者$.post一个表单数据,而各种各样的input、textarea、radio、checkbox等类型数据,如果想通过jQuery来提交,你必须一个一个的收集数据然后整理成一个JSON格式的{key:value, key:value...}数据,然后再提交到一个地址,为了解决这个郁闷的情况,我自己原创了一个JS方法,自动在提交前收集数据,而无须手动一个个地去整理,代码如下,大家可以尽情转载试用,但出问题不负责哈哈,你可以完善它:
// JavaScript Document/** * 检测数组中是否包含与指定值相同的单元 * 成功则返回值相同的第一个位置,没有相同的则返回FALSH */Array.prototype.contain = function(_val){if(this.length <= 0) return false;for(var i=0;i<this.length;i++){if(this[i] == _val) return i;}return false;};// 清空数组,并还原页面效果Array.prototype.clear = function(){this.splice(0, this.length);};// 收集表单数据项目(还有个textarea中的换行问题是通过转换成<br/>解决的,大家自己完善)function formdata(_id) {var dd = new Object;var val = '';var tag = '';var name = '';// 处理text、checkbox、select、textarea数据$('#'+_id+' input[type=text],#'+_id+' input[type=hidden],#'+_id+' input[type=checkbox],#'+_id+' select,#'+_id+' textarea').each(function(){val = $(this).val();tag = this.tagName.toUpperCase();if ($(this).attr('type') == 'checkbox') val = ($(this).attr('checked') ? val : '');// 新方法(待测试)//val = val.replace(/\r/g, '');//val = val.replace(/\n/g, '[n]');//eval('dd.'+$(this).attr('name')+'="'+val+'";');//eval('dd.'+$(this).attr('name')+'=dd.'+$(this).attr('name')+'.replace(/\\[n\\]/g, "\\n")');// 原方法if (tag == 'TEXTAREA') val = val.replace(/[\r\n]/g, '<br />');name = ($(this).attr('name') == "" ? ($(this).attr('id') == "" ? "NULL" : $(this).attr('id')) : $(this).attr('name'));if(name != "NULL") eval('dd.'+name+'="'+val+'";');});// 处理radio数据var radios = new Array();var tname = '';var size = 0;$('#'+_id+' input[type=radio]').each(function(){tname = $(this).attr('name');if (radios.contain(tname) == false) radios.push(tname);});size = radios.length;for (var i=0; i<size; i++) {val = $('#'+_id+' input[type=radio][name='+radios[i]+'][checked]').val();if (val == undefined) val = '';eval('dd.'+radios[i]+'="'+val+'";');}radios.clear();return dd;}// 测试用途:输出所有表单数据function allpro ( obj ) { // 用来保存所有的属性名称和值 var props = "";// 开始遍历 for ( var p in obj ){ // 方法 if ( typeof ( obj [ p ]) == " function " ){ obj [ p ]() ; } else { props += p + " = " + obj [ p ] + " \t " ; } } alert( props ) ; }
- jQuery表单数据收集成key/value对象
- jquery手册学习--数据缓存--data([key],[value])--removeData([name|list])--jQuery.data(element,[key],[value])
- jquery获取json对象的key和value
- 将指定的form表单中所有的输入项转为json数据{key:value,key:value}
- 根据表单的name(名字)数组,返回对应的Map对象。Map对象的key是表单的name,Map对象的value是表单的value
- jQuery.data(element,[key],[value])
- jquery autocomplete key value pair
- javascript实现key-value对象
- js定义key:value对象
- 遍历对象key与value
- AngularJs 表单提交数据不能以key-value 形式传到后台的解决方案
- java 后台模拟post表单请求发送key-value数据乱码
- JQuery递归解析无限层级JSON对象的所有key和value
- jQuery data(key, value)函数 在匹配的元素上随心所欲的存放数据
- Jquery之data([key],[value])【div存储数据,普通的和kv对】(十一)
- jQuery快速收集表单信息
- FormData表单数据对象(h5)快速收集表单信息(注册登录时使用的)
- jQuery ajax 传参key和value问题
- ComboBox --不用CComboBox类的使用方法 2011.07.20
- Flash笔记之xml
- js控制文件大小
- 数据结构学习思路
- 由迅雷“使用迅雷下载链接”功能引发的JS脚本
- jQuery表单数据收集成key/value对象
- Android笔记: ProgressBar 圆形进度条颜色的设置
- 内核模块
- JDBC 的 excute 返回值,这是神马逻辑
- PHP中用session存入对象的解决方案
- oracle 查询语句根据参数值来动态生成条件
- DOM解析XML
- 搜索引擎语法
- DIMM