//定义方法:将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);
}
});
这段代码演示了如何利用jQuery的fn.extend方法将表单数据序列化为JSON对象,特别处理了复选框的值。然后通过Ajax进行POST请求,以JSON格式发送数据到API接口,并在成功响应时更新页面元素。
575

被折叠的 条评论
为什么被折叠?



