jquery提供的serialize方法可以实现。jquery
$("#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());