//定义方法:将form表单中数据格式化为 json对象 $.fn.serializeObject = function () { var checkboxNames = []; var $checkbox = $('input[type=checkbox]', this); $.each($checkbox, function(){ if($.inArray(this.name, checkboxNames) == -1){ checkboxNames.push(this.name); } }); var o = {}; var a = this.serializeArray(); $.each(a, function () { if (o[this.name] !== undefined) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; //为数组追加value } o[this.name].push(this.value || ''); } else{ if($.inArray(this.name, checkboxNames) >= 0){ o[this.name] = [this.value]; //构造 {name : []} checkbox值放入数组中 }else { o[this.name] = this.value || '';//构造 {name : value} } } }); return o; };
// 调用方式:
var dataObj = $("#form").serializeObject(); $.ajax({ type: "post", contentType: 'application/json', url: "api/get", data: JSON.stringify(dataObj), success: function(data) { $("#tasklist").html(data); } });