我想在不使用Jquery的情况下在纯Javascript中执行此操作。我发现的所有示例都使用JQuery。
我有一个带有
的html页面(index.html)<form id="1">
<input type="text">10</input>
<input type="text">20</input>
</form>
<form id="2">
<input type="text">55</input>
<input type="text">66</input>
</form>
我想在另一个页面(data.json)中打印这个,
[
{
"1": [
"10",
"20"
],
"2": [
"55",
"66"
]
}
]
在一个单独的文件(makejson.js)中,我有一个JQuery语法,我想将其更改为纯Javascript,
function makeJSON() {
jsonObj = [];
$("input[type=text]").each(function() {
var inData = $(this).val();
item = {}
item ["1"] = inData;
jsonObj.push(item);
});
}
这当前不起作用,它仅适用于来自“1”参数(表单id 1)的数组。我需要能够动态循环的东西(即“i = 0; i&lt; array.length; i ++”),它确定来自表单id 1的数组1和来自表单id 2的数组2。
如何收集输入,将其转换为JSON并将其保存到单独的页面?
答案 0 :(得分:0)
简单的Javascript解决方案:
<强> jsFiddle Demo 强>
function makeJSON(){
var arr = [{}];
var inputs;
var jsonString;
var forms = document.forms;
for(var i=0; i<forms.length; i++){
if(typeof(arr[0][forms[i].id]) == 'undefined'){
arr[0][forms[i].id] = [];
}
for(var ii=0; ii<forms[i].elements.length; ii++){
arr[0][forms[i].id].push(forms[i].elements[ii].value)
}
}
jsonString = JSON.stringify(arr);
console.log(jsonString);
}
输出JSON字符串:
[
{
"1": [
"10",
"20"
],
"2": [
"55",
"66"
]
}
]