我有以下代码:
//Populate inputData with the values of the input text boxes, in order
var inputData = {};
var x = document.getElementById("newInventoryForm");
//Added this following line in the edit
$('#additionalContent').append("My x.length property " + x.length + "<br/>");
for (var i = 0; i < x.length - 1; i++) {// -1 so we don't get the submit button
var addData = {
id : x[i].id,
value : x[i].value
};
inputData[i] = addData;
$('#additionalContent').append(inputData[i].id + " : " + inputData[i].value + "<br/>");
}
我试图将表单数据从之前制作的表单传递到另一个javascript函数。在我这样做之前,我试图在同一个.js页面中完成所有工作,但是当我尝试通过for循环输出inputData
时,它显示为空白。我确定这是因为inputData.length
是undefined
。我的印象是将它声明为inputData = {};
使其成为一个数组,因此具有默认长度值。如何将其更改为具有正确的长度?
有几位评论者说var x = document.getElementById("newInventoryForm");
应该返回null或节点,两者都没有length属性。在上面的代码中添加行已经产生了这个输出。
我的x.length属性18 serialNumber:456 someDatafield:someInput
答案 0 :(得分:3)
您已将其声明为对象。
或许var inputData = [];
会给你更好的结果。
答案 1 :(得分:0)
{}
是一个对象,而不是一个数组
你想要[]
。
此外,getElementById()
不返回数组;你的整个代码毫无意义。