JQuery Kochbuch (German Edition) by jQuery Community Experts
Autor:jQuery Community Experts [Experts, jQuery Community]
Die sprache: eng
Format: epub
Tags: COMPUTERS / Programming Languages / JavaScript
ISBN: 9783868995756
Herausgeber: O'Reilly Verlag
veröffentlicht: 2012-05-29T22:00:00+00:00
Note
Da wir das change-Event bei jeder Validierung entbinden und wieder binden, habe ich den Event-Namensraum .isValid hinzugefügt, um es direkte ansprechen zu können. Hat ein Form-Element andere change-Events gebunden, dannbleiben sie so erhalten.
Das Problem am vorigen Code ist nicht die Syntax sondern die Logik. Die Radio Buttons im HTML-Code haben das Attribut class="required". Das bedeutet, beim Validieren der gesamten Form wird jeder Radio Button validiert und (noch wichtiger) jedes <label> eines Radio Button erhält eine Klasse (oder sie wird wieder entfernt), um den Fehler anzuzeigen. Wenn wir aber eine Revalidierung mit dem Element-spezifischen change-Event erlauben, wird nur das <label> des entsprechenden Radio Buttons aktualisiert – die anderen behalten ihren Fehlerstatus bei. Um dies zu beheben, muss ein einzelnes change-Event alle Radio Buttons in der name-Gruppe begutachten, um die Klassen aller <label>s simultan anzupassen:
// anstatt $(selector).method nutzen wir $(selector)[method] // wähle die richtige Methode, aber wähle weise var method = isValid ? 'removeClass' : 'addClass'; // Fehlermeldung zeigen [addClass] // Fehlermeldung verbergen [removeClass] $('#errorMessage_' + name)[method]('showErrorMessage'); if ( type == 'checkbox' || type == 'radio' ) { // Bei Radio Button oder Checkbox alle Inputs mit dem gleichen Namen finden $('input[name="' + name + '"]').each(function(){ // Alle <label>-Tags der Inputs anpassen, (this==<input>) $('label[for="' + this.id + '"]')[method]('error'); }); } else { // Für alle anderen Inputs nur ein <label> anpassen $('label[for="' + id + '"]')[method]('error'); } // nach der initialen Validierung beim Ändern revalidieren können $element .unbind('change.isValid') .bind('change.isValid',function(){ validateElement.isValid(this); });
Hätten wir diesen Code mit der Punkt-Syntax geschrieben, hätte er doppelt so viele Zeilen gehabt. Und mit dieser neuen Logik benötigt nur ein Radio Button (oder eine Checkbox) in einer name-Gruppe das Attribut class="required", damit alle anderen Elemente in dieser Gruppe ebenfalls korrekt angepasst werden.
Was geschieht, wenn JavaScript deaktiviert ist? Die Form wird ohne Validierung auf Client-Seite abgeschickt. Stellen Sie daher immer sicher, dass Sie auch auf Server-Seite eine Überprüfung vornehmen. Verlassen Sie sich nicht nur auf JavaScript. Gibt der Code auf Server-Seite die Form mit Fehlern zurück, dann können die gleichen Klassen für die gleichen Elemente genutzt werden. Sie brauchen keine Inline-Style-Tags oder eigenen Code, um die vom Server gemeldeten Fehler anders zu behandeln.
Download
Diese Site speichert keine Dateien auf ihrem Server. Wir indizieren und verlinken nur Inhalte von anderen Websites zur Verfügung gestellt. Wenden Sie sich an die Inhaltsanbieter, um etwaige urheberrechtlich geschützte Inhalte zu entfernen, und senden Sie uns eine E-Mail. Wir werden die entsprechenden Links oder Inhalte umgehend entfernen.
9783861535928Agent by Unknown(1333)
The Attack by Noam Chomsky(1194)
Wie man die Zeit anhält by Haig Matt(998)
Star Wars - Krieg der Sterne by George Lucas(976)
Dantons Tod by Georg Büchner(931)
Das Risiko und sein Preis by Taleb Nassim Nicholas(920)
Cash by Price Richard(894)
Island fotografieren by Martin Schulz(885)
Motorräder fotografieren by Julian Eichhoff(869)
FileMaker Pro 12 by Horst-Dieter Radke(866)
Per Anhalter durch die Galaxis by Douglas Adams(861)
DIE CIPHA.NET-CHRONIKEN IV (German Edition) by Sascha Schroeder(860)
Programmieren lernen mit Python by Allen Downey(845)
DIE CIPHA.NET-CHRONIKEN II (German Edition) by Sascha Schroeder(842)
Practical Django 2 and Channels 2 by Federico Marani(828)
Moon by James Herbert(823)
Das Low Carb Kochbuch zum Abnehmen: Gesunde und leckere Rezepte für jeden Tag inkl. 4 Wochen Low Carb Challenge zur optimalen Gewichtsreduktion und Fettverbrennung (German Edition) by Pehle Sophie(820)
DIE CIPHA.NET-CHRONIKEN I (German Edition) by Sascha Schroeder(809)
Understanding Error Control Coding by Emilio Sanvicente(807)