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

document.getElementById()はサーバーからアクセスできないため、これはクライアント側のVBScriptであると推測できます。

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

ループを少し変更する必要はありませんか?

For x = 0 To num - 1

EG 4 つのアイテムの場合、0 から 3 まで繰り返す必要があります。

于 2008-10-16T13:13:03.950 に答える
0

クライアント側とサーバー側のコードが混在しているように見えます。

objFile.writeLine(orders(x))

これは、ファイルに書き込むための VBScript であり、サーバー上でのみ実行できます。

document.getElementById

これは、通常 JavaScript で実行されるクライアント サイズのコードです。クライアントの IE で VBScript を使用できますが、これを行う人はめったにいません。

サーバーでは、通常、DOM 要素ではなく、フォーム タグの一部であるフォーム フィールドを参照します (従来の ASP を使用していると仮定して) request("formFieldName") を使用します。

サーバー側のものをクライアントに表示するには (ページを作成するとき)、次のように HTML に埋め込みます。

<% = myVariable %>

またはこのように(コードブロックの一部として):

document.write myVariable
于 2008-09-25T20:55:21.337 に答える