我希望在我正在构建的Web应用程序的DOM元素的引用中使用VBScript变量。以下是受影响的代码区域的简短摘录:
dim num
num = CInt(document.myform.i.value)
dim x
x = 0
dim orders(num)
For x = 0 To num
orders(x) = document.getElementById("order" & x).value
objFile.writeLine(orders(x))
Next
这是我第一次进入VBScript,我无法找到任何在线执行此类操作的方法。正如您在上面的代码中看到的,我正在尝试创建一个数组(orders)。此数组可以包含任意数量的值,但该数字将在document.myform.i.value
中指定。所以For循环遍历所有文本输入,ID为order + x(即order0,order1,order2,order3,order4等等,最多为num)
这似乎是我的订单(x)行的一个问题,我不认为它意识到getElementById("order" & x)
的意思,我不确定如何做这样的事情。有人有什么建议吗?非常感谢!
答案 0 :(得分:1)
我能够让这个工作。感谢你们两位时间和投入。以下是为我解决的问题:
而不是使用
document.getElementById("order" & x).value
我将整个ID设置为变量:
temp = "order" & x
document.getElementById(temp).value
它似乎按预期工作。再次,非常感谢您花时间和精力!
答案 1 :(得分:0)
我只能假设这是客户端VBScript,因为无法从服务器访问document.getElementById()。
尝试objFile.writeLine(“order”& x),然后检查源代码以确保所有元素都在文档中。
[因为我无法在评论中添加代码...] 这很奇怪。在我看来,一切都应该有效。
只有我能想到的其他事情是:改变
orders(x) = document.getElementById("order" & x).value
objFile.writeLine(orders(x))
到
orders(x) = document.getElementById("order" & x)
objFile.writeLine(orders(x).value)
答案 2 :(得分:0)
看起来好像是在混合客户端代码和服务器端代码。
objFile.writeLine(orders(x))
这是写入文件的VBScript,只能在服务器上执行。
document.getElementById
这是通常在JavaScript中执行的客户端大小的代码。您可以在客户端上使用IE上的VBScript,但很少有人这样做。
在服务器上,您通常会使用request(“formFieldName”)来引用作为表单标记的一部分的表单字段,而不是DOM元素(假设您使用的是经典ASP)。
要在客户端上显示服务器端内容(当您构建页面时),请将其嵌入HTML中,如下所示:
<% = myVariable %>
或像这样(作为代码块的一部分):
document.write myVariable
答案 3 :(得分:0)
你不需要稍微改变你的循环吗?
For x = 0 To num - 1
E.G。有4个项目需要从0迭代到3。