Javascript 将HTMLCollection()值和名称转换为JSON
问题: 两个窗体,隐藏在div中,当您按下CoreSponding按钮时显示。输入被解析为JSON并与请求一起发送。 由于不同的原因,我无法使用Javascript 将HTMLCollection()值和名称转换为JSON,javascript,json,htmlcollection,Javascript,Json,Htmlcollection,问题: 两个窗体,隐藏在div中,当您按下CoreSponding按钮时显示。输入被解析为JSON并与请求一起发送。 由于不同的原因,我无法使用表单或字段集来包装表单,因此我使用了: form=document.getElementById('formularEins').getElementsByTagName('input') 当我仍然能够使用form.elements(在我意识到IE不支持fieldset上的.elements属性之前)时,我使用它从输入生成JSON: (在本例中,form
表单
或字段集
来包装表单,因此我使用了:
form=document.getElementById('formularEins').getElementsByTagName('input')代码>
当我仍然能够使用form.elements
(在我意识到IE不支持fieldset上的.elements属性之前)时,我使用它从输入生成JSON:
(在本例中,form=document.getElementsByClassName('formOne')[0];
问题:
如何将HTMLCollection及其类似项的输入转换为JSON
我尝试了以下不同版本,但失败了:
var formToJSON = function formToJSON(form) {
for (var i = 0; i < form.length; i++) {
var item = form[i];
data[item.name] = item.value; }
};
var formToJSON=函数formToJSON(form){
对于(变量i=0;i
必须将数据变量定义为对象。请尝试使用以下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;
}
var formToJSON=function(form){
变量数据={};
对于(变量i=0;i
小提示:var formToJSON=function(form){…}
或function formToJSON(form){…}
(或formToJSON=form=>{…}
),不要在变量函数赋值中重复函数名。另外,[].reduce.call()
不是很惯用(但我知道你为什么这么做--.reduce()
在HTMLCollection
)上不存在,但是@msinfo谢谢!我拥有的formToJSON=form=>{…}
是IE无法使用的,所以我将它改为var formToJSON=function(form){…}
但这有点过头了。只需注意,您在该类型的赋值中给出的名称被忽略。请使用不同的名称尝试:var a=function b(c){console.log(c)}
然后b(“hello”)
将抛出引用错误:b未定义。这是一种期望值,但一文不值。另外,很遗憾您不能使用=>
。
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;
}