【发布时间】:2017-06-13 20:22:29
【问题描述】:
我确信这里缺少一些简单的东西。这部分代码在我网站的客户端:
function test(){
var insert;
var insertArray = [];
var arrayLength = document.getElementById("arrayLength").value;
var length = parseInt(arrayLength)
var o;
var int;
var insertID
var i;
for (i = 0; i<=length; i++){
int = i.toString();
insertID = "insertNumber" + int;
insert = document.getElementById(insertID).value;
insertArray.push(insert);
};
o = JSON.stringify(insertArray);
google.script.run.withSuccessHandler(successDisplay)
.mailroomDataEntry(o);
}
循环按应有的方式工作,但函数似乎没有超出循环的末尾。没有数据被传回服务器端。
例如,如果我将 window.alert(insertArray) 放在 for 循环中,我会得到预期的结果(即,每次循环进行时都会出现一个警报框,直到最后一个框具有完整的数组。
但是,如果我在 for 循环关闭后放置相同的 window.alert,我什么也得不到。根本没有警告框。
【问题讨论】:
-
它会抛出任何控制台错误吗?您确定
length是您期望的值吗? -
我开始说长度正是我所期望的,因为它是 93 并且当前数组中有 93 个项目...然后我意识到对于 93 个项目,我实际上需要 92为长度的值。更改: var length = parseInt(arrayLength) 到 var length = parseInt(arrayLength)-1 并且工作正常。非常感谢你的帮助。我确信这很简单!
-
在你的变量定义下放一个
try{,最后} catch(e) {console.log('There was an error: ' + e.message)}变量insertArray可能不是有效的JSON。但是,知道发生了什么的唯一方法是进行一些调试。对于 Chrome 和 Firefox,按 f12 键打开浏览器控制台。 -
元素 ID 是从 insertNumber0 还是 insertNumber1 开始?
标签: javascript arrays loops for-loop google-apps-script