1

我希望在对我正在构建的 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,我还没有找到任何在线执行此类操作的方法。正如您在上面的代码中看到的,我正在尝试创建一个数组(订单)。该数组可以有任意数量的值,但该数量将在document.myform.i.value. 因此,For 循环遍历 ID 为 order+x 的所有文本输入(即 order0、order1、order2、order3、order4 等,直到 num)

我的 orders(x) 行似乎有问题,我认为它无法识别我的意思getElementById("order" & x),而且我不确定该怎么做。有人有什么建议吗?将不胜感激!

4

4 回答 4

1

我能够得到这个工作。感谢你们俩的时间和投入。这是为我解决的问题:

而不是使用

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

我将整个 ID 设置为变量:

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

它似乎按预期工作。再次,非常感谢您为此付出的时间和精力!

于 2008-09-26T13:22:40.707 回答
0

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

For x = 0 To num - 1

EG 有 4 个项目,您需要从 0 迭代到 3。

于 2008-10-16T13:13:03.950 回答
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)
于 2008-09-25T18:04:44.197 回答
0

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

objFile.writeLine(orders(x))

那是 VBScript 写入文件,您只能在服务器上执行此操作。

document.getElementById

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

在服务器上,您通常使用 request("formFieldName") 来引用作为表单标签一部分的表单字段,而不是 DOM 元素(假设您使用的是经典 ASP)。

为了让服务器端的东西出现在客户端(当你构建一个页面时),你可以像这样将它嵌入到你的 HTML 中:

<% = myVariable %>

或像这样(作为代码块的一部分):

document.write myVariable
于 2008-09-25T20:55:21.337 回答