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

modify serialize form function to take input ID instead of name

本文关键字:ID 输入 表单 序列化 函数 获取 修改      更新时间:2024-05-08

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

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

其中"name"字段是从文本框输入的结果,"group_id"字段是通过复选框选择选项的结果。如何更改此函数,使其根据文本框字段的名称和复选框的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;
};

我尝试过使用两个单独的函数来完成这项工作,一个用于name,另一个用于id,但我不知道如何将输出组合在一起,并且将表单序列化两次是没有意义的。

如果复选框的name不正确,只需在序列化之前将其更改为id的值即可

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