我一直在尝试将值列表添加到对象/关联数组中,这样我就可以从多选插件的输入中获取值列表。我想要将输入的名称添加为对象键。
问题:似乎没有创建列表,只是更新循环中的最后一个输入值...我在这里做错了什么?
var selectObj = {};
$('input').each(function(inputKey)
{
alert($(this).val()); //all input values shown
selectObj[$(this).attr('name')] = $(this).val();
});
alert(JSON.stringify(selectObj)); //last input value shown
期望的结果:
selectObj = { “listName1”: “12,3,31,4”}
selectObj = { “listName1”: “12,3,31,4”},{ “listName2”: “1,32,43,5”}
答案 0 :(得分:0)
根据您对所需结果的修改,您可以执行此操作
var selectObj = {};
var inputValues = [];
$('input').each(function(inputKey){
attrName = $(this).attr('name');
inputValues.push(value);
});
selectObj[attrName] = inputValues .toString();
答案 1 :(得分:0)
感谢 gillesc 帮助我解决这个问题,它现在成功检查了各种多选插件检查或选择的所有输入,并输出到 inputValues 对象:
$('input').each(function()
{
if($(this).closest('li').hasClass("checked") || $(this).closest('li').hasClass("active"))
{
var selectKey = $(this).attr('name');
if (!inputValues[selectKey])
{
inputValues[selectKey] = [];
}
inputValues[selectKey].push($(this).val());
}
}