問題:
対応するボタンを押すと表示される非表示の div 内の 2 つのフォーム。入力は JSON に解析され、リクエストと共に送信されます。さまざまな理由でフォームを使用form
または ラップすることはできないため、次を使用しました。fieldset
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; }
};