问题:
隐藏div中的两种形式,当您按下同步按钮时会出现这两种形式。 Input被解析为JSON并随请求一起发送。
由于各种原因,我无法使用form
或fieldset
来换行表单,因此我使用了:
form = document.getElementById('formularEins').getElementsByTagName('input');
当我仍然能够使用form.elements
时(在我意识到IE的字段集不支持.elements属性之前)我使用它来从输入生成JSON:
(在这种情况下为form = document.getElementsByClassName('formOne')[0];
Const formToJSON = elements => [].reduce.call(elements, (data, element) => {
if (isCheckbox(element)) {
//data[element.name] = (data[element.name] || []).concat(element.value);
data[element.name] = element.value;
} else if (isMultiSelect(element)) {
data[element.name] = getSelectValues(element);
} else {
data[element.name] = element.value;
}
}
return data;
},);
问题:
如何将输入转换为JSON以获取HTMLCollection及其上述项目?
我尝试了 - 并且使用以下不同版本失败了:
var formToJSON = function formToJSON(form) {
for (var i = 0; i < form.length; i++) {
var item = form[i];
data[item.name] = item.value; }
};
答案 0 :(得分:1)
您必须将数据变量定义为对象。尝试使用formToJSON函数。
var formToJSON = function(form) {
var data = {};
for (var i = 0; i < form.length; i++) {
var item = form[i];
data[item.name] = item.value;
}
return data;
}