CirTap: Wie werden HTML Formularergebnisse in VB Script bearbeitet?

Beitrag lesen

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