JSON 数组导致开机自检后出现额外的括号
JSON array causing extra bracket after POST
我正在自由标记中编写一个函数来循环遍历所有选中的复选框,然后在同一表单上重新填充相同的响应。表单是自由标记格式,我正在使用JS为每个包含复选框的类别创建一个单独的数组。代码如下:
.HTML:
<input type="checkbox" class="checkBox" value="United Kingdom" name="holidays" />
<input type="checkbox" class="checkBox" value="Australia" name="holidays" />
<input type="checkbox" class="checkBox" value="United States" name="holidays" />
<input type="checkbox" class="checkBox" value="Asia" name="holidays" />
<input type="checkbox" class="checkBox" value="United Kingdom" name="flights" />
<input type="checkbox" class="checkBox" value="Australia" name="flights" />
<input type="checkbox" class="checkBox" value="United States" name="flights" />
<input type="checkbox" class="checkBox" value="Asia" name="flights" />
.JS:
var extraObjs = {};
if(validated) {
$(formRef).find('input[type=text],input[type=password]').each(function() {
var obj = $(this);
extraObjs[obj.attr('name')] = obj.val();
});
$(formRef).find('input[type=radio]:checked, input[type=checkbox]:checked').each(function() {
var obj = $(this);
if(obj.is('[type="checkbox"]')) {
if(typeof extraObjs[obj.attr('name')] !== 'object') {
extraObjs[obj.attr('name')] = [];
}
extraObjs[obj.attr('name')].push(obj.val());
} else {
extraObjs[obj.attr('name')] = obj.val();
}
});
return extraObjs;
} else {
return false;
}
问题是,当信息通过 POST 发送时,显示的结果是:
flights[] ["United Kingdom", "Asia"]
holidays[] ["United Kingdom", "Asia"]
似乎额外的括号导致了问题
如果你尝试,你能看看你是否得到想要的结果吗
return JSON.stringify(extraObjs);
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将数组从PHP传递到Javascript
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在函数中添加数组元素的数值
- 无法通过数组映射绑定
- javascript中的数组出错
- 如何使用 node.js 比较两个 json 数组
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 根据id将json数组组合为一个json数组
- 如何通过数组更新角度子范围
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- JSON 数组导致开机自检后出现额外的括号
- 如果开机自检时数组中只有一个对象,则为每个错误