VBScript:在DOM元素中使用变量

时间:2020-03-06 14:44:16  来源:igfitidea点击:

我正在寻找在我正在构建的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)的意思,而且我不确定该怎么做。有人有什么建议吗?将不胜感激!

解决方案

我只能假定这是客户端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)

似乎我们在混合客户端代码和服务器端代码。

objFile.writeLine(orders(x))

这就是VBScript写入文件的过程,我们只能在服务器上执行该操作。

document.getElementById

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

在服务器上,通常使用request(" formFieldName")引用属于表单标签而不是DOM元素的表单字段(假设我们使用的是经典ASP)。

为了使服务器端的东西出现在客户端上(在构建页面时),我们可以将其嵌入到HTML中,如下所示:

<% = myVariable %>

或者类似这样(作为代码块的一部分):

document.write myVariable

我能够做到这一点。感谢你们俩的时间和投入。这是为我解决的问题:

而不是使用

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

我将整个ID设置为变量:

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

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

我们是否不需要稍微更改循环?

For x = 0 To num - 1

例如。对于4个项目,我们需要从0迭代到3.