Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einleitung
2 Webbrowser
3 JavaScript einbauen
4 Programmieren mit JavaScript
5 Datum
6 Zufall
7 Browserinformationen
8 Fenster
9 Formulare
10 Frames und Iframes
11 Grafiken
12 Cookies
13 Objekte und Arrays
14 Ereignisbehandlung
15 Fehlerbehandlung
16 DOM
17 DHTML und CSS
18 AJAX
19 XML
20 Web Services
21 AJAX-Frameworks
22 Plugins
23 Multimedia
24 Java
25 Serverseitige Technologien
26 JavaScript goes .NET
27 Code schützen
28 Top Secret: Passwortschutz
29 Signierte Skripte
30 JavaScript und Sicherheit
31 Navigation
32 Warenkorb
33 JavaScript-Bibliotheken
34 Referenz
35 Quellen im Web
36 Die Zukunft von JavaScript
Index
Download: - ZIP, ca. 9,2 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> / JavaScript und AJAX | vor >>
JavaScript und AJAX von Christian Wenz Das umfassende Handbuch
JavaScript und AJAX 839 S., mit DVD, 39,90 Euro Galileo Computing ISBN 3-89842-859-1 |
| Kapitel 26 JavaScript goes .NET
|  | 26.1 Erste Schritte
|  | 26.2 HTML Controls
|  | 26.3 Web Controls
|  | 26.4 Validation Controls
|  | 26.5 Fazit
## 26.4 Validation Controls Eine häufige Anwendung für JavaScript ist die Validierung von Formularfeldern. Noch besser als eine JavaScript-Validierung ist natürlich eine serverseitige Validierung, denn clientseitiges JavaScript kann ja im Browser ausgeschaltet werden. Bei der Überprüfung von Pflichtfeldern kann ASP.NET dem Programmierer viel Arbeit abnehmen. Der Einbau einer Formularprüfung erfordert (fast) keine Programmierung. So genannte Validation Controls übernehmen den Rest. Hier sehen Sie ein Beispiel für ein solches Control:
    <asp:RequiredFieldValidator runat="server"
       ControlToValidate="Email"
       ErrorMessage="** Geben Sie eine E-Mail-Adresse an" />
Das Formularfeld mit dem id-Attribut "Email" wird überprüft; bei einem Fehler wird die angegebene Fehlermeldung ausgegeben. Neben dieser einfachen Überprüfung für Pflichtfelder können auch komplexere Angaben verifiziert werden, zum Beispiel mit Hilfe von regulären Ausdrücken: Hier wird das Feld Email zusätzlich noch auf korrekte Formatierung geprüft. Das Attribut Display="Dynamic" ist nicht notwendig; im Beispiel sorgt es nur dafür, dass die Fehlermeldung im Zweifelsfall direkt neben dem zugehörigen Formularfeld ausgegeben wird. Das Beste: Das war es auch (fast) schon. Validation Controls werden an der Stelle, an der sie im HTML-Code stehen, bei Bedarf durch die angegebene Fehlermeldung ersetzt; Sie sollten die Controls also neben dem jeweiligen Formularfeld platzieren. Hier sehen Sie ein vollständiges Listing:
    <%@ Page Language="JScript" %>
    <script runat="server">
    function Ausgabe(o: Object, e: EventArgs) {
       Page.Validate();
       if (Page.IsValid) {
          var s: String;
          s  = "Name: " + Name.Text + "<br />";
          s += "E-Mail: " + Email.Text + "<br />";
          s += "Buch: " + Buch.SelectedItem.Value;
          Absatz.Text = s;
       }
    }
    </script>

    <html>
    <head>
       <title>ASP.NET</title>
    </head>
    <body>

    <form runat="server">
    Name: <asp:TextBox id="Name" runat="server" />
    <asp:RequiredFieldValidator runat="server"
       ControlToValidate="Name"
       ErrorMessage="** Geben Sie Ihren Namen an" />
    <br />
    E-Mail: <asp:TextBox id="Email" runat="server" />
    <asp:RequiredFieldValidator runat="server"
       ControlToValidate="Email"
       ErrorMessage="** Geben Sie eine E-Mail-Adresse an"
       Display="Dynamic"/>
    <asp:RegularExpressionValidator runat="server"
       ControlToValidate="Email"
       ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
       ErrorMessage="** Geben Sie eine gültige E-Mail-Adresse an"
       Display="Dynamic"/>
    <br>
    Buch: <asp:DropDownList id="Buch" runat="server">
       <asp:ListItem Value="JS7" Text="JavaScript-Handbuch, 7. Auflage" />
       <asp:ListItem Value="AS" Text="Einstieg in ActionScript" />
       <asp:ListItem Value="WS" Text="Web Services – Grundlagen" />
       <asp:ListItem Value="WSPHP" Text="Web Services mit PHP" />
    </asp:DropDownList>
    <asp:Button Text="Versenden" OnClick="Ausgabe" runat="server" />
    </form>
    <asp:Label id="Absatz" runat="server" />
    </body>
    </html>
Laden Sie die Seite in den Webbrowser, und versuchen Sie, das Formular unausgefüllt oder mit falschen Angaben abzusenden. Das mögliche Ergebnis sehen Sie in Abbildung 26.6. Hier klicken, um das Bild zu Vergrößern Abbildung 26.6 Das Formular kann nicht mit Fehlern verschickt werden. ASP.NET verhindert clientseitig, dass das Formular verschickt wird, wenn die Überprüfungen nicht stattgefunden haben. Dies geschieht auf dem Client, sprich: Hier ist JavaScript mit im Spiel. Ein Blick in den Quellcode offenbart das auch. Zunächst wird eine ASP.NET-eigene Validierungsbibliothek geladen (die Versionsnummer hängt natürlich von der Versionsnummer der verwendeten .NET-Version ab):
    <script language="javascript" src="/aspnet_client/system_web/1_1_4322/WebUIValidation.js">
    </script>
Die Fehlermeldungen sind auch alle bereits im HTML-Dokument vorhanden:
    <span id="_ctl1" controltovalidate="Name" errormessage="** Geben Sie Ihren Namen an"
    evaluationfunction="RequiredFieldValidatorEvaluateIsValid" initialvalue=""
    style="color:Red;visibility:hidden;">** Geben Sie Ihren Namen an</span>
Beachten Sie das style-Attribut – zunächst sind die Meldungen nämlich noch unsichtbar. Sobald jedoch ein Fehler festgestellt wird, werden die roten Texte sichtbar. Die folgende Angabe im <form>-Tag aktiviert schließlich die Validierung beim Formularversand:
    onsubmit="ValidatorOnSubmit();"
Sie sehen also – es ist keine große Hexerei, aber viel weniger Arbeit. Sie fragen sich vermutlich noch, warum die folgende Überprüfung im JScript.NET-Code eingebaut worden ist:
       Page.Validate();
       if (Page.IsValid) {
          // ...
       }
Nun, die Validierung im Webbrowser funktioniert offensichtlich nur bei aktiviertem JavaScript. Viel schlimmer ist jedoch Folgendes: Sie funktioniert in alten .NET-Versionen (1.0, 1.1) nur im Microsoft Internet Explorer, andere Browser bleiben außen vor. Das ist umso verwunderlicher, als dass beispielsweise die aktuellen Netscape-Versionen in JavaScript-Hinsicht die gezeigten Effekte zum »Live-Einblenden« von Fehlermeldungen durchaus unterstützen würden. Aber es soll eben nicht so sein, wie Abbildung 26.7 und Abbildung 26.8 verdeutlichen: Unter Konqueror kann das Formular auch mit Fehlern verschickt werden. Allerdings gibt es für diese anderen Browser und Browsereinstellungen einen Ausweg: Mit Page.Validate() stoßen Sie manuell die Validierung an. Wenn mindestens ein Validation Control eine Fehlermeldung ausgeben müsste, wird dadurch die Eigenschaft Page.IsValid auf false gesetzt. Deswegen wird genau diese Eigenschaft geprüft. Ist sie true, werden die Formulardaten ausgegeben, andernfalls nicht. Im letzteren Fall allerdings erscheinen dann automatisch die Fehlermeldungen – der Benutzer, der das Formular ausgefüllt hat, muss also seine Eingaben korrigieren, um das Formular verschicken zu können. Hier klicken, um das Bild zu Vergrößern Abbildung 26.7 Beim Konqueror kann das Formular (zunächst) verschickt werden … Hier klicken, um das Bild zu Vergrößern Abbildung 26.8 ...doch die »Bestrafung« folgt auf dem Fuße. In ASP.NET 2.0 funktioniert die Validierung in allen modernen Browsern, aber die Extra-Prüfung ist weiterhin notwendig – JavaScript kann ohne Weiteres abgeschaltet werden. Sie dürfen sich deswegen nie darauf verlassen, dass die Daten im Browser bereits überprüft worden sind.
<< zurück | <top> | vor >>
Zum Katalog
JavaScript und AJAX bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| JavaScript und AJAX - Das Video-Training
| Webseiten programmieren und gestalten
| XHTML, HTML und CSS
| CSS-Praxis
| AJAX
| PHP 5 und MySQL 5
| TYPO3 4.0
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de