VBScript:在DOM元素中使用变量
我正在寻找在我正在构建的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.