VBScript: Verwendung einer variable, die in einem DOM-element
Bin ich suchen, um eine VBScript-variable innerhalb einer Referenz auf ein DOM-element für eine web-app, die ich Baue. Hier ein kurzer Auszug des betroffenen Gebiets code:
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
Dies ist meine erste venture in VBScript, und ich habe nicht in der Lage gewesen zu finden, Methoden der Durchführung dieser Art von Aktion online. Wie Sie sehen können in dem obigen code, ich versuche, ein array zu erstellen (Bestellungen). Dieses array kann eine beliebige Anzahl von Werten, aber diese Zahl wird angegeben in document.myform.i.value
. Also die For-Schleife durchläuft alle text-Eingaben mit einer ID von Ordnung+x (dh, order0, order1, order2, order3, order4, etc. bis zu num)
Scheint es ein problem mit meinen Bestellungen(x) - Linie, ich glaube nicht, dass es erkennt, was ich damit meine getElementById("order" & x)
, und ich bin mir nicht sicher, wie genau so etwas zu tun. Jemand irgendwelche Vorschläge? Es wäre sehr geschätzt werden!
InformationsquelleAutor | 2008-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich in der Lage, diese zu arbeiten. Dank Ihnen beiden für Ihre Zeit und Eingang. Hier ist, was Sie gelöst für mich:
Anstatt
Ich die gesamte ID als variable:
Es scheint zu funktionieren wie erwartet. Wieder einmal, vielen Dank für die Zeit und Mühe!
InformationsquelleAutor
Kann ich nur davon ausgehen, dass dies clientseitig VBScript als Dokument.getElementById() ist nicht von dem server aus zugänglich.
versuchen objFile.writeLine("Bestellung" & x), dann überprüfen Sie die Quelle, um sicherzustellen, dass alle Elemente im Dokument.
[Wie ich kann nicht platzieren Sie code in den Kommentaren...]
Das ist seltsam. Es sieht für mich so aus, dann sollte alles funktionieren.
Einzige andere Sache, die ich denken kann, ist: ändern
zu
Du hast Recht, es ist nur zum Debuggen das problem. Machen Sie sicher, dass Sie tatsächlich gehen durch alle Elemente in dem Dokument. Haben Sie getestet, was für ein Dokument.myform.ich.Wert zurück?
Dokument.myform.ich.Wert 0 zurück objFile.writeLine("Bestellung" & x) funktionierte wie erwartet. Ich hatte 5 Elemente auf meiner Seite zu der Zeit mit IDs beginnend mit der Ordnung, und es zurückgegeben: order0 order2 order1 order3 order4 Also muss es etwas damit zu tun, dass die Verwendung einer Variablen in eine DOM-Referenz, nicht?
Auch sollte ich erwähnen, dass Dokument.myform.ich.Wert bei 0 BEGINNT. Um order0 - order4 oben, ich.Wert wurde geändert, um 5. Also es hängt davon ab, Wann die VBScript-Funktion ausgeführt wird.
Das macht durchaus Sinn, aber es ist immer noch nicht arbeiten, ich bin noch immer Objekt Erwarteten Fehler, wenn die Funktion ausgeführt wird. Gibt es irgendwelche anderen Möglichkeiten, um Referenz der DOM, wo eine variable akzeptiert werden würde?
InformationsquelleAutor Dan Williams
Sieht es aus, als ob Sie sind mischen client-vs. server-side-code.
VBScript, um eine Datei zu schreiben, die Sie nur auf dem server.
Dies ist Größe client-code wird normalerweise ausgeführt, in JavaScript. Sie VBScript verwenden können, im IE auf dem client, aber selten hat jemand dies tun.
Auf dem server würde Sie beziehen sich in der Regel um Formularfelder, die Sie mit einem form-tag, nicht DOM-Elemente, (vorausgesetzt, Sie sind mit den klassischen ASP) mit request("formFieldName").
Um server-side-Zeug auf dem client angezeigt (beim erstellen einer Seite), du würdest einbinden in Ihre HTML so:
oder wie diese (als Teil eines code-block):
InformationsquelleAutor Diodeus - James MacFarlane
Nicht, Sie brauchen, um Ihre Schleife etwas?
E. G. Mit 4 Artikel, die Sie brauchen, um die Iteration von 0 bis 3.
InformationsquelleAutor Magnus Smith