带有Request.Form的JScript数组

时间:2012-09-05 14:44:10

标签: javascript arrays asp-classic jscript serverside-javascript

我有一个可能很愚蠢的问题,但我无法让它发挥作用......

我正在提交一份包含以下输入的表单:

<input type="hidden" id="hidden0" name="Options2" value="0" />
<input type="hidden" id="hidden1" name="Options2" value="30" />
<input type="hidden" id="hidden2" name="Options2" value="4" />
<input type="hidden" id="hidden3" name="Options2" value="-1" />
<input type="hidden" id="hidden4" name="Options2" value="-1" />
<input type="hidden" id="hidden5" name="Options2" value="-1" />
<input type="hidden" id="hidden6" name="Options2" value="-1" />
<input type="hidden" id="hidden7" name="Options2" value="-1" />

请注意,这8个输入是动态创建的。单击提交时,我会使用name =“Options”动态创建所有输入,并将值放入一些常规输入中。

var inputs = document.getElementsByName("Options"+cpt);
for( var g = 0; g < 8; g++ )
{
    document.all.Options[g].value = inputs[g].value;
}

当我收到表格时,我得到了这句话:

var arrayOption = Request.Form("Options");

如果我是Response.Write(arrayOption),我可以看到结果:0,30,4,-1等... 我试图在这样的循环中获取所有值:

for (var k = 0; k < arrayOption.count; k++) {
    Response.Write(arrayOption[k]);
}

在这种情况下,arrayOption [k]未定义,我不知道为什么。我还注意到arrayOption.length不起作用(这就是我使用.count的原因)。看起来arrayOption不是真正的数组,所以我试图拆分,但是Object不支持这个属性或方法。这一切有什么问题?

1 个答案:

答案 0 :(得分:3)

那么看起来就像ASP Classic + Server端JScript一样所以你需要一个Enumerator()来走集合,例如

for (var e = new Enumerator(Request.Form); !e.atEnd(); e.moveNext())
     Response.Write(e.item() + "=" + Request.Form(e.item()) + "<br>");

枚举所有帖子数据