将table数据封装成json格式的字符串,以便传到后台处理。

/**
 * 获取table表格的数据项.
 */
function getTableData(tableId){
	var data = "{";                                        //定义数据变量
	$("#" + tableId).find("input, select").each(function(){//遍历表格中的input、select等标签
		if($(this).attr("id")){		               //如果此标签设置了id,则取出其中数据
			data += "\"" + $(this).attr("id") + "\":\"" + $(this).val() + "\",";	//拼接id和数据
		}
	});
	if(data.length != 1){                                  //如果取出了数据,删除多余的符号
		data = data.substring(0, data.length-1);       //删除多余的符号','
	}			
	data += "}";                                           //添加结束符
	data = eval("(" + data + ")");	                       //将数据转换成json对象
	return data;					       //返回数据
}

楼下有人指出可以直接通过表单序列化/元素序列化获取数据,jquery的serialize()方法即可。
此方法返回的是类似url参数格式的字符串:"a=1&b=2&c=3"。此方法既可以对整个表单form进行序列化取值,也可以通过元素来序列化
即:$("#formId").serialize();或者$("input").serialize();


/************************************************2016-04-07更新***************************************************/

工作时间长了,来更新下现在使用的方法

//表单转对象
$.fn.form2object = function () {
    var o = {};
    var a = this.serializeArray();
    $.each(a, function () {
        if (this.value) {
            o[this.name] = this.value;
        }
    });
    return o;
};

//对象转表单
$.fn.object2form = function (obj) {
    for (var key in obj) {
        $(this).find("input[name='" + key + "']").val(obj[key]);
        $(this).find("textarea[name='" + key + "']").val(obj[key]);
        $(this).find("select[name='" + key + "']").val(obj[key]);
    }
};

//将数据显示到form表单
$("xxxform").object2form(data);

//从form表单获取数据
var data = $("xxxform").form2object();




转载于:https://my.oschina.net/chenhao901007/blog/212797

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值