HTMLCollection() 值和名称 JSON

HTMLCollection() Values and Names to JSON

问题:

两种形式,在隐藏的div中,当你按下对应的按钮时出现。输入被解析为 JSON 并随请求一起发送。 由于不同的原因,我不能使用 formfieldset 来环绕表格,所以我使用了:

form = document.getElementById('formularEins').getElementsByTagName('input');

当我仍然可以使用 form.elements 时(在我意识到 .elements 属性 在 IE 的字段集上不受支持之前)我用它来生成 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;
},);

问题:

如何将 HTMLCollection 及其项目的输入转换为 JSON,如上所示?

我尝试了 - 但失败了以下不同版本:

   var formToJSON = function formToJSON(form) {
       for (var i = 0; i < form.length; i++) {
       var item = form[i]; 
       data[item.name] = item.value; }
   };

您必须将数据变量定义为对象。尝试以下 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;
}