VBScript:在DOM元素中使用变量

时间:2008-09-25 17:59:35

标签: javascript html vbscript

我希望在我正在构建的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)的意思,我不确定如何做这样的事情。有人有什么建议吗?非常感谢!

4 个答案:

答案 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。