修改serialize表单函数以获取输入ID而不是名称

我有一个JavaScript函数,它迭代一个表单,以根据输入字段的名称获取输入值。 但是,为了满足API post请求参数,我需要以下JSON格式的输入:

{ "name": "mobile offers", "group_id": "35" } 

其中“name”字段是文本框输入的结果,“group_id”字段是通过复选框选择选项的结果。 如何更改此function,以便它根据文本框字段的名称和复选框的ID进行输入?

 $.fn.serializeObject = function () { 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]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; }; 

我尝试使用两个单独的函数来做它,一个用于名称,一个用于id,但是无法弄清楚如何将输出放在一起,并且将表单序列化两次没有意义。

如果复选框的name不正确,可以在序列化之前将它们简单地更改为id值

 $(':checkbox').attr('name',function(){ return this.id; }); /* now serialize form*/