Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在自定义键/值对中序列化表单?_Javascript_Jquery - Fatal编程技术网

Javascript 如何在自定义键/值对中序列化表单?

Javascript 如何在自定义键/值对中序列化表单?,javascript,jquery,Javascript,Jquery,我需要以自定义键/值对格式序列化表单。这是我的HTML代码的外观: 许可证ID 报价ID 协议类型 客户站点 96 249 支持率 菲多利公司。 100 支持率 菲多利公司。 点击 这就是我序列化它的方式: $(函数(){ $('#subm')。单击(函数(){ var sA=$('#ltq_frm').serializeArray(); var s=$('#ltq_frm').serialize(); 控制台日志(sA); 控制台日志; }); }); 这是“工作”,但我得到一个四个值的

我需要以自定义键/值对格式序列化表单。这是我的HTML代码的外观:


许可证ID
报价ID
协议类型
客户站点
96
249
支持率
菲多利公司。
100
支持率
菲多利公司。
点击
这就是我序列化它的方式:

$(函数(){
$('#subm')。单击(函数(){
var sA=$('#ltq_frm').serializeArray();
var s=$('#ltq_frm').serialize();
控制台日志(sA);
控制台日志;
});
});
这是“工作”,但我得到一个四个值的数组作为输出。我想得到如下信息:

[
    'license_id' => 'quote_id'
]
使用上述示例:

[
    96  => 249,
    100 => 
]
上面的值来自表单上的隐藏元素,这些元素被命名为
license\u id
quote\u id

我正在检查,但我不知道如何将我的值转换为所需的键/值对

我正在使用的JSFIDLE,以防您需要它

注意:这是一个正在开发的代码,所以如果您有更好的建议或需要给我一些不同的东西,请继续


我明白了。您需要这样的自定义代码来执行此操作:

var finalObj = { };
$.each(​$('form')​.serializeArray()​, function() {
    finalObj[this.name] = this.value;
})​;

console.log(finalObj);
片段

var finalObj={};
$.each($('form').serializeArray(),function(){
finalObj[this.name]=this.value;
});
console.log(finalObj)

许可证ID
报价ID
协议类型
客户站点
96
249
支持率
菲多利公司。
100
支持率
菲多利公司。

我明白了。您需要这样的自定义代码来执行此操作:

var finalObj = { };
$.each(​$('form')​.serializeArray()​, function() {
    finalObj[this.name] = this.value;
})​;

console.log(finalObj);
片段

var finalObj={};
$.each($('form').serializeArray(),function(){
finalObj[this.name]=this.value;
});
console.log(finalObj)

许可证ID
报价ID
协议类型
客户站点
96
249
支持率
菲多利公司。
100
支持率
菲多利公司。

您可以手动映射每一行,获取两个输入,使用第一个作为键,第二个作为值,如下所示

var result = $('#ltq_frm tbody tr').map(function() {
    var inp = $('input', this), o   = {};

    o[inp.first().val()] = inp.last().val();
    return o;
}).get();

您可以手动映射每一行,获取两个输入,使用第一个作为键,第二个作为值,如下所示

var result = $('#ltq_frm tbody tr').map(function() {
    var inp = $('input', this), o   = {};

    o[inp.first().val()] = inp.last().val();
    return o;
}).get();

我认为您必须告诉我们这些值应该来自哪里。你想要
96=>249
,但是
96
在一个数据属性中,在一个值中,在一个类名的一部分中,这个值从何处获得有关系吗?那么像这样->@adeneo是的,先生,请添加一个答案,我给你投票;)我想你必须告诉我们这些值应该来自哪里。你想要
96=>249
,但是
96
在一个数据属性中,在一个值中,在一个类名的一部分中,这个值从何处获得有关系吗?那么像这样->@adeneo是的,先生,请添加一个答案,我给你投票;)这不是我要寻找的,请看一个示例,其中密钥
license\u id
成为
name=“license\u id”
的值,值
quote\u id
成为
name=“quote\u id”
的值。“明白了吗?”雷尼尔普姆我已经明白了。请检查更新的答案。你得到了你想要的。@ReynierPM你接受新答案的原因是什么?只是好奇,兄弟<代码>:)
只是好奇,因为另一个答案的格式与您预期的不同,我的答案与您要求的格式相同。上面的答案看起来更简洁,而且确实返回了我需要的内容,事实上是我正在使用的答案,我给您投票:)别担心,您的答案也很有用,我非常确定它对任何人都适用;)这不是我要寻找的,请看一个示例,其中密钥
license\u id
成为
name=“license\u id”
的值,值
quote\u id
成为
name=“quote\u id”
的值。“明白了吗?”雷尼尔普姆我已经明白了。请检查更新的答案。你得到了你想要的。@ReynierPM你接受新答案的原因是什么?只是好奇,兄弟<代码>:)
只是好奇,因为另一个答案的格式与您预期的不同,我的答案与您要求的格式相同。上面的答案看起来更简洁,而且确实返回了我需要的内容,事实上是我正在使用的答案,我给您投票:)别担心,您的答案也很有用,我非常确定它对任何人都适用;)