|
Microsoft® Visual Basic® Scripting Edition VBScript und Formulare |
VBScript-Tutorium Zurück | Weiter
|
Mit der Visual Basic Scripting Edition können Sie einen großen Teil der normalerweise auf einem Server anfallenden Formularverarbeitung durchführen. Ihnen stehen sogar Funktionen zur Verfügung, die auf dem Server überhaupt nicht verfügbar sind.Es folgt ein Beispiel für einfache Gültigkeitsprüfung auf Client-Seite. Der HTML-Code realisiert ein Textfeld und eine Schaltfläche. Wenn Sie die von diesem Code erzeugte Seite mit dem Microsoft® Internet Explorer ansehen, erkennen Sie ein kleines Textfeld mit einer Schaltfläche daneben.
Der einzige Unterschied zwischen diesem Beispiel und den Beispielen unter "Eine einfache VBScript-Seite" besteht darin, daß die Value-Eigenschaft des Textfelds verwendet wird, um den eingegebenen Wert zu überprüfen. Um jedoch den Wert der Value-Eigenschaft zu erhalten, muß der Code den Verweis auf den Namen des Textfelds explizit angeben.<HTML> <HEAD><TITLE>Einfache Gültigkeitsprüfung</TITLE> <SCRIPT LANGUAGE="VBScript"> <!-- Sub Uebermitteln_OnClick Dim DasFormular Set DasFormular= Document.gueltigesFormular If IsNumeric(DasFormular.Text1.Value) Then If DasFormular.Text1.Value < 1 Or DasFormular.Text1.Value > 10 Then MsgBox "Geben Sie einen Wert von 1 bis 10 ein." Else MsgBox "Vielen Dank." End If Else MsgBox "Bitte geben Sie einen numerischen Wert ein." End If End Sub --> </SCRIPT> </HEAD> <BODY> <H3>Einfache Gültigkeitsprüfung</H3><HR> <FORM NAME="gueltigesFormular"> Bitte geben Sie einen Wert von 1 bis 10 ein: <INPUT NAME="Text1" TYPE="TEXT" SIZE="2"> <INPUT NAME="Uebermitteln" TYPE="BUTTON" VALUE="Übermitteln"> </FORM> </BODY> </HTML>Sie können immer den vollständigen Verweis, Document.gueltigesFormular.Text1, ausschreiben. Wenn Sie jedoch mehrere Verweise auf Formular-Steuerelemente haben, sollten Sie besser das hier verwendete Verfahren einsetzen. Zunächst deklarieren Sie eine Variable. Dann verwenden Sie die Set-Anweisung, um der Variablen DasFormular das Formular zuzuweisen. Eine reguläre Zuweisung, wie z.B. Dim, würde hier nicht funktionieren: Sie müssen Set verwenden, um den Verweis auf ein Objekt zu erhalten.
Beachten Sie, daß im Beispiel der Wert direkt mit einer Zahl verglichen wird. Mit Hilfe der IsNumeric -Funktion wird überprüft, ob die Zeichenfolge im Textfeld eine Zahl ist. Obwohl VBScript bei Bedarf automatisch Zeichenfolgen in Zahlen konvertiert, gehört es zum guten Programmierstil, einen vom Benutzer eingegebenen Wert auf dessen Untertyp hin zu überprüfen und bei Bedarf die Konvertierungsfunktionen einzusetzen. Außerdem sollten Sie beim Addieren von Werten in Textfeldern die Werte explizit in Zahlen konvertieren, weil das Pluszeichen ("+"-Operator) sowohl für Additionen als auch für Zeichenfolgenverkettungen verwendet werden kann. Wenn z.B. Text1 den Wert "1" und Text2 den Wert "2" enthält, erhalten Sie folgende Ergebnisse:A = Text1.Value + Text2.Value ' A enthält den Wert "12" A = CDbl(Text1.Value) + Text2.Value ' A enthält den Wert 3
Das Beispiel für eine einfache Auswertung enthält ein normales Schaltflächen-Steuerelement. Wenn das Beispiel ein Submit-Steuerelement verwenden würde, könnte es die Daten niemals auswerten, da alle Daten direkt an den Server übergeben würden. Wenn Sie das Submit-Steuerelement nicht einsetzen, können Sie die Daten prüfen, aber sie werden nicht an den Server übergeben. Dazu ist eine zusätzliche Code-Zeile notwendig:Um die Daten an den Server zu übergeben, ruft der Code die Submit-Methode des Formularobjekts auf, sofern die Daten korrekt sind. Ab diesem Zeitpunkt behandelt der Server die Daten wie sonst auch, nur wurden sie bereits auf ihre Richtigkeit überprüft, wenn sie den Server erreichen. Vollständige Informationen über die Submit-Methode und andere Methoden finden Sie auf der Seite Internet Explorer Scripting-Objektmodell.<SCRIPT LANGUAGE="VBScript"> <!-- Sub Uebermitteln_OnClick Dim DasFormular Set DasFormular= Document.gueltigesFormular If IsNumeric(DasFormular.Text1.Value) Then If DasFormular.Text1.Value < 1 Or DasFormaular.Text1.Value > 10 Then MsgBox "Bitte geben Sie einen Wert von 1 bis 10 ein." Else MsgBox "Vielen Dank." DasFormular.Uebermittlen ' Daten korrekt, an Server senden. End If Else MsgBox "Bitte geben Sie einen numerischen Wert ein." End If End Sub --> </SCRIPT>Bis jetzt haben Sie nur die Standard-HTML-<FORM>-Objekte kennengelernt. Mit Internet Explorer 3.0 können Sie auch die Leistungsfähigkeit der ActiveX-Steuerelemente (früher auch OLE-Steuerelemente genannt) und der Java-Objekte voll ausschöpfen.