jquery提供的serialize方法能够实现。
$("#searchform").serialize();
但是,观察输出的信息,发现serialize()方法做的是将表单中的数据以htpp请求格式拼接成字符串。
serialize确实是能够解决一般的提交数据。但是有时我们需要的是一个object对象,而不是字符串(比如jqgrid reload时设置查询条件参数,就需要object对象)。
方法如下:
(function(window, $) {
$.fn.serializejson = function() {
var serializeobj = {};
var array = this.serializearray();
var str = this.serialize();
$(array).each(
function() {
if (serializeobj[this.name]) {
if ($.isarray(serializeobj[this.name])) {
serializeobj[this.name].push(this.value);
} else {
serializeobj[this.name] = [
serializeobj[this.name], this.value ];
}
} else {
serializeobj[this.name] = this.value;
}
});
return serializeobj;
};
})(window, jquery);
调用:
console.info($("#searchform").serializejson());
隔壁全叫我老王