Javascript VBScript:在DOM元素中使用变量

Javascript VBScript:在DOM元素中使用变量,javascript,html,vbscript,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 这是我

我希望在我正在构建的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)


我的orders(x)行似乎有问题,我认为它无法识别我所说的
getElementById(“order”&x)
是什么意思,我也不知道该怎么做。有人有什么建议吗?非常感谢

我只能假设这是作为文档的客户端VBScript。无法从服务器访问getElementById()

document.getElementById
尝试objFile.writeLine(“order”&x),然后检查源代码以确保所有元素都在文档中

[因为我不能在注释中添加代码…] 这很奇怪。在我看来,一切都应该正常

我唯一能想到的是:改变

orders(x) = document.getElementById("order" & x).value
objFile.writeLine(orders(x))


我只能假设这是作为文档的客户端VBScript。无法从服务器访问getElementById()

document.getElementById
尝试objFile.writeLine(“order”&x),然后检查源代码以确保所有元素都在文档中

[因为我不能在注释中添加代码…] 这很奇怪。在我看来,一切都应该正常

我唯一能想到的是:改变

orders(x) = document.getElementById("order" & x).value
objFile.writeLine(orders(x))


看起来好像您在混合客户端代码和服务器端代码

objFile.writeLine(orders(x))
这是写入文件的VBScript,只能在服务器上执行

document.getElementById
这是通常在JavaScript中执行的客户端大小的代码。您可以在客户端的IE上使用VBScript,但很少有人这样做

在服务器上,您通常使用请求(“formFieldName”)引用作为表单标记一部分的表单字段,而不是DOM元素(假设您使用的是经典ASP)

要使服务器端内容显示在客户端(当您构建页面时),您可以将其嵌入HTML中,如下所示:

<% = myVariable %>

看起来好像您在混合客户端代码和服务器端代码

objFile.writeLine(orders(x))
这是写入文件的VBScript,只能在服务器上执行

document.getElementById
这是通常在JavaScript中执行的客户端大小的代码。您可以在客户端的IE上使用VBScript,但很少有人这样做

在服务器上,您通常使用请求(“formFieldName”)引用作为表单标记一部分的表单字段,而不是DOM元素(假设您使用的是经典ASP)

要使服务器端内容显示在客户端(当您构建页面时),您可以将其嵌入HTML中,如下所示:

<% = myVariable %>

我能让它工作。感谢你们两位的时间和投入。以下是我解决问题的方法:

而不是使用

document.getElementById("order" & x).value
我将整个ID设置为一个变量:

temp = "order" & x
document.getElementById(temp).value

它似乎在按预期工作。再次感谢您为此付出的时间和努力

我能让它工作起来。感谢你们两位的时间和投入。以下是我解决问题的方法:

而不是使用

document.getElementById("order" & x).value
我将整个ID设置为一个变量:

temp = "order" & x
document.getElementById(temp).value

它似乎在按预期工作。再次感谢您为此付出的时间和努力

你不需要稍微改变一下你的循环吗

For x = 0 To num - 1

例如,对于4项,您需要从0迭代到3。

您不需要稍微更改循环吗

For x = 0 To num - 1

例如,对于4项,您需要从0迭代到3。

是的,这是客户端VBScript。关于这项建议,我已确认文件中有这些内容。我不确定objFile.writeLine(“order”&x)是否能满足我的需要。这似乎只是打印“order0”,然后是“order1”,而不是“order”数组中的第x个值。没错,这只是为了帮助调试问题。确保您实际浏览了文档中的所有元素。您测试过document.myform.i.value返回的是什么吗?document.myform.i.value返回0 objFile.writeLine(“订单”&x)按预期工作。当时我的页面上有5个元素,ID以Order开头,它返回:order0 order1 order2 order3 order4,所以它一定与在DOM引用中使用变量有关,不是吗?另外,我应该提到document.myform.I.value从0开始。为了获得上面的order0-order4,i.value被更改为5。所以这取决于VBScript函数何时运行。这当然是有道理的,但它仍然不起作用,当函数运行时,我仍然会得到对象预期的错误。是否有其他方法可以引用接受变量的DOM?是的,这是客户端VBScript。关于这项建议,我已确认文件中有这些内容。我不确定objFile.writeLine(“order”&x)是否能满足我的需要。这似乎只是打印“order0”,然后是“order1”,而不是“order”数组中的第x个值。没错,这只是为了帮助调试问题。确保您实际浏览了文档中的所有元素。您测试过document.myform.i.value返回的是什么吗?document.myform.i.value返回0 objFile.writeLine(“订单”&x)按预期工作。当时我的页面上有5个元素,ID以Order开头,它返回:order0 order1 order2 order3 order4,所以它一定与在DOM引用中使用变量有关,不是吗?另外,我应该提到document.myform.I.value从0开始。为了获得上面的order0-order4,i.value被更改为5。所以这取决于VBScript函数何时运行。这当然是有道理的,但它仍然不起作用,当函数运行时,我仍然会得到对象预期的错误。有没有其他方法可以引用DOM来接受变量呢