simple Javascript HTML5 jQuery Form Validation

Formular Validierung hat noch nie Spaß gemacht und meistens beschränke ich die Validierung auf die Server-Seite. Doch bevor man ein Formular per AJAX abschicken will, ist es immer besser auch auf der Client-Seite die Eingaben zu validieren und dem Benutzer ggf. noch darauf hinzuweisen dass nicht alle notwendigen Informationen eingegeben sind, das erspart Frustration.

HTML5 ist dabei eine große Hilfe. Mit dem erweiterten Formularfeld Attribut type, sowie dem pattern und required Attribut übernimmt der Browser die Validierung. Per Javascript reicht dann die Suche nach Formular Elementen die required sind aber einen invalid Status haben:

var $form = $("#emailForm");
if ($form.find(":required:invalid").length === 0) {
  // alle Pflichtfelder validieren
 
} else {
  // Nicht alle Pflichtfelder validieren
}

Über CSS kann man die Formularfelder auch noch stylen je nachdem ob sie valid oder invalid sind. Wer noch „Nicht-HTML5-Browser“ unterstützten muss, könnte per Modernizr((Modernizr  – the feature detection library for HTML5/CSS3)) eine Weiche schalten und ein Javascript Plugin zur Valdierung nutzen, oder per Progressive Enhancement((Progressive Enhancement – Wikipedia Artikel)) das Formular einfach über die serverseitige Parameter Validierung überprüfen und ausgeben lassen – um die serverseitige Validierung kommt man auch mit der jQuery Zeile von oben nicht drumherum. Frontend Formular Validierung ist und bleibt ein UX-Enrichment((UX Enrichment – Die Bereicherung des Benutzer Erlebnis)).

HTML5 Video als Flashfallback

Tja, das Web wäre soweit, aber die User noch nicht. Daher gibt es doch relativ oft die Anforderung einen bestehenden Flashplayer bei Geräten zu ersetzen die kein Flash installiert haben.

Dabei gibt es zwei Dinge zu beachten: Kann der Browser ohne Flash überhaupt HTML5 Video und liefert man die richtigen Codecs aus – sonst schaut der User ja auch wieder in die Röhre.

Wenn zum Beispiel ein IE8 kein Flash installiert hat und man einfach als Fallback den <video>-Tag eingebunden hat ist dem User nicht geholfen.

weiterlesen

Minigolf Scoreboard UPDATE!

Hallo Freunde,

ich habe den gestrigen Tag genutzt um das Minigolf Scoreboard gründlich zu überarbeiten. Da mein nächstes Projekt höchstwahrscheinlich auch mit dem großartigen Yii Framework umgesetzt wird, wollte ich nochmal mein Wissen auffrischen und habe die Arbeit am Portal wirklich genossen.

Aber was hat sich denn alles geändert?

Aber der Reihe nach. Für die erste Version des Minigolf Scoreboard hatte ich ein Design Namens „Red Music“ gewählt, das auf den ersten Blick ganz niedlich war, mich aber bei jeder Erweiterung zu sehr einschränkte. Daher musste der Anstrich der Seite geändert werden um mehr gestalterische Möglichkeiten zu haben.

Das nun gewählte Thema gefällt mir sehr gut, ich muss lediglich noch ein paar Grafiken erstellen damit es mehr „minigolfiger“ ist.

Das positive an einem neuen Anstrich ist auch, das man Seitenteile wegfallen lassen kann ohne das es jedem direkt auffällt. Ich wollte eigentlich mittels jquery.flot auf der Startseite eine interaktive Grafik erzeugen, aber habe schon Stunden in die Datenaufbereitung gesteckt ohne ein befriedigendes Ergebnis zu erhalten. Das hab ich jetzt wegfallen lassen. Dafür wird immer direkt der letzte Spieltag ausgespielt mit Verlinkungen zu allem und jedem. Die interaktive Tabelle ist natürlich geblieben.

Neben zahlreichen Änderungen unter der Haube sind mir während der Arbeit auch noch weitere Fakten eingefallen die es wert sind ausgespielt zu werden.

So wurde die Auflistung der Spieler wahrlich bereichert als mir die Idee kam alle Asse und Glocken zu zählen und die Spieltage hervorzuheben an denen ein Spieler die meisten Asse oder die meisten Glocken gespielt hat! Das hebt den Wettkampf auf eine völlig neue Stufe ;)

In den nächsten Ausbaustufen will ich mich noch um eine spezielle mobil Version der Seite kümmern, damit sie auf meinem Handy auch schneller und optimaler angezeigt wird. Die Möglichkeiten von CSS3 werden mir dort helfen.