9.6 Kontrolle der Benutzereingaben
Eingabeformulare werden vor dem Absenden normalerweise kontrolliert. Vor dem Senden der Daten sollte beispielsweise festgestellt werden,
- ob der Benutzer bei allen Pflichtfeldern eine Eingabe gemacht hat,
- ob die Eingabe in einem bestimmten Feld den Erfordernissen genügt (hat die E-Mail-Adresse ein @-Zeichen?),
- ob die Eingabe zu anderen Eingaben des Formulars passt
Die Kontrolle findet auf dem Rechner des Benutzers mithilfe von automatisch generiertem JavaScript statt. Falls diese Validierung nicht erfolgreich war, werden die Daten nicht über das Internet zum Webserver gesendet und unnötiger Netzverkehr wird vermieden.
Im nachfolgenden Beispiel findet eine einfache Kontrolle statt. Falls der Benutzer eine der beiden Zahlen nicht eingibt, die zur Addition benötigt werden, so wird er deutlich darauf hingewiesen, siehe Abbildung 9.7.
Abbildung 9.7 Fehlermeldung nach Kontrolle
Es folgt der Code der Seite default.aspx in der Web-Anwendung mit dem Namen WebFormularKontrolle:
<html>
<head>
<title>WebFormularKontrolle</title>
<%@ page language="VB" %>
<script runat="server">
Sub Page_Load()
Dim z1, z2, z As Double
If IsPostBack Then
Validate()
If IsValid Then
Try
z1 = Convert.
ToDouble(zahl1.Value)
Catch ex As Exception
z1 = 0
End Try
Try
z2 = Convert.
ToDouble(zahl2.Value)
Catch ex As Exception
z2 = 0
End Try
z = z1 + z2
ergebnis.Text = "Ergebnis: " & z
End If
End If
End Sub
</script>
</head>
<body>
<p>Addieren</p>
<form id="Form1" runat="server">
<p><input runat="server" id="zahl1"
type="text" /> Zahl 1
<asp:RequiredFieldValidator
ID="RequiredFieldValidator1"
ControlToValidate="zahl1"
Display="dynamic"
runat="server">
Bitte eintragen
</asp:RequiredFieldValidator></p>
<p><input runat="server" id="zahl2"
type="text" /> Zahl 2
<asp:RequiredFieldValidator
ID="RequiredFieldValidator2"
ControlToValidate="zahl2"
Display="dynamic"
runat="server">
Bitte eintragen
</asp:RequiredFieldValidator></p>
<p><input id="Submit1" runat="server"
type="submit" value="Senden" /></p>
</form>
<p><asp:Label id="ergebnis" runat="server" /></p>
</body>
</html>
Listing 9.7 Projekt »WebFormularKontrolle«, Datei »default.aspx«
Zur Erläuterung des Visual-Basic-Blocks:
- Dieser Code sorgt dafür, dass nach dem Betätigen des Sende-Buttons eine Kontrolle stattfindet.
- Zunächst wird die Methode Validate() der Klasse Page aufgerufen. Diese weist alle Validierungs-Elemente der Seite (unten im HTML-Container) an, ihre zugeordneten Formularelemente zu kontrollieren.
- Die Eigenschaftsmethode IsValid gibt an, ob eine Validierung erfolgreich war oder nicht. Ein Ergebnis wird nur dann berechnet und ausgegeben, wenn die Validierung erfolgreich war.
Zur Erläuterung des HTML-Containers:
- Unmittelbar hinter einem Eingabefeld wird ein Container mit einem Server-Steuerelement vom Typ RequiredFieldValidator notiert. Dieser Validator-Typ kontrolliert, ob in einem Pflichtfeld eine Eingabe gemacht wurde. Es gibt noch eine Reihe weiterer Validatoren-Typen.
- In der Eigenschaft ControlToValidate wird mithilfe des ID-Werts die Zuordnung zu dem Steuerelement durchgeführt, das kontrolliert werden soll.
- Die Eigenschaft Display entscheidet über die Form der Anzeige einer Fehlermeldung. Der Eigenschaftswert Dynamic bedeutet, dass die Fehlermeldung nur im Fehlerfall erscheint.
- Die Fehlermeldung lautet: Bitte eintragen.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.