【发布时间】:2011-05-26 20:06:46
【问题描述】:
我有一点 Javascript,我用 XMLHttpRequest 发布我的表单,否则效果很好,但是当我尝试将 SELECT 值添加到 INPUT 值数组时,似乎 Javascript 已经失去理智(或我有)。
此函数只是构建“name1=value1&name2=value2”字符串并将其传递。
代码:
function sendTheForm() {
var postData = '';
var inputArr = document.getElementsByTagName('input');
if (inputArr.hasOwnProperty(length)) alert("ARRAY!!");
var selects = document.getElementsByTagName('select');
var tmpObj = new Object();
for (var i = 0; i < selects.length; i++) {
tmpObj.name = selects[i].name;
tmpObj.value = selects[i].value;
inputArr.push(tmpObj);
}
for (var i = 0; i < inputArr.length; i++) {
if (inputArr[i].value) {
if (postData.length) postData += '&';
postData += inputArr[i].name;
postData += '=';
postData += escape(inputArr[i].value);
}
}
makeHttpReq(postData)
}
我在 FireFox 中遇到的错误是:“inputArr.push is not a function”它确实说它是一个数组。
现在,除了它是一个方法(而不是一个函数)这一事实之外,这里似乎出现了严重问题,它就在我的眼皮底下,我看不到它。帮忙?
之前,我尝试过这样做:
len = inputArr.length;
inputArr[len].name = ...
并且还收到一个错误,即 inputArr[31] 未定义。这可能很明显,但我没有看到。帮忙?
【问题讨论】:
-
嗨 - 我已经为你修改了它,但是当你发布代码时,选择它并按下编辑器中的代码块按钮(101010 按钮)会很有帮助
-
第二个问题:数组中的最后一项总是
myArray[ myArray.length-1 ],因为 JavaScript 数组的索引从 0 开始。 -
数组是对象,但对象不是数组。
-
哦,我必须从 sstatic.net 启用 Javascript,右边有按钮和方向。 (有时 NoScript 很痛苦。)
-
Phrogz - 对于第二个 Q,我试图向“数组”添加一个元素。如果它是一个数组,我认为它会工作得很好。由于 NodeLists 不允许添加,所以没有运气。
标签: javascript html arrays dom