Hi Christian,
Ich habe einige Formularfelder mit Integer Werte auf einer HTML Seite erstellt und möchte die Werte in einen VBScript weiter verarbeiten.
gehe mal davon aus, dass du dann nix für netscape machen willst (oder schon hast) und du auch nicht über ASP sprichst, was die sache dann ganz anders aussehen läßt.
die billigste lösung wäre, für alle betreffenden INPUTS einen event-handler zu definieren, was in VBS deutlich einfach ist als in JS:
<html><head>
<script language="VBScript">
Dim oki ' "Kontrollvariable": true> FORM wird gesendet
oki=false
Sub txtAlter_onChange
' steht was drin und ist es eine Zahl?
If IsEmpty(Me.Value) Or Not IsNumeric(Me.Value) Then
oki=false
Else
If CInt(Me.Value)>=18 Then
oki=true
Else
MsgBox "Mindestalter: 18 Jahre"
End If
End If
End Sub
Function frmPerson_onSubmit()
frmPerson_onSubmit=oki
End Function
</script>
</head>
</html>
<body>
<form name="frmPerson" method="POST">
<input type="text" name="txtAlter" value="">
<input type="submit" name="btnSend" value="Ab damit">
</form>
</body>
Das ist ein recht billiges beispiel, da es nur mit einer globales check-variable (oki) arbeitet und das senden des formulars (frmPerson_obSubmit) verhindert, wenn diese nicht TRUE ist. zudem wird das event (onChange) auch nur getriggert, wenn sich wirklich was geändert hat und der cursor das feld verläßt. alternativ kannst du je input auch die "onKey"-events (s.u) verwenden und aus dem window.event die gedrückte taste herausfummeln - finde ich aber recht lästig.
Für jedes(!) benannte(!) HTML-Element kannst du in VBS einen entsprechenden eventhandler definieren, indem du schlichtweg
eine Sub bzw. Function nach dem schema "elementname_eventname"
definierst.
IE ruft diese automatisch auf, zB. :
txtAlter_onKeyDown
txtAlter_onKeyPress
txtAlter_onKeyUp
txtAlter_onBlur
etc.
In der VBS-Doku von MS findest du alle infos bzgl. variablen check und umwandlung (wie zB IsNumeric(), Is Nothing etc.)
http://msdn.microsoft.com/scripting/
Viel Spaß
CirTap