Hauptmenü

Untermenü

OOP/DOM-Scripting JavaScript - Einstiegstutorial 2 - Die anonymen Funktionen

1. Die Abschnitte

2. Plural?

Ja genau. Denn diesmal arbeiten wir mit zweien. Und die sind auch noch verschachtelt. Fangen wir zuerst mal mit dem window.onload an. Zu der grundsätzlichen Thematik habe ich mich ja hier schon geäußert.


window.onload = function()
{
  var required = new Array ('feld_2''feld_3');
  var mail     'feld_2';      
}

Das Problem

... ist hier erst mal nur von theoretischer Natur. Trotzdem möchte ich meinen Senf dazu geben. Also, sehr oft möchte man JavaScript-Funktionen erst dann zulassen, wenn der HTML-Code komplett geladen worden ist. Leider gibt es da ein Problem. Man kann das erst mal nicht abfangen. Für Firefox und Opera gibt es zwar ein DOMContentLoaded, aber für den IE und den Safari ist mir nichts dergleichen bekannt. Denn bei denen muss das händisch über eine JavaScript-Krücke nachgebildet werden. Gut, viele Frameworks bieten das an, aber auf die gehe ich hier nicht ein. Außerdem ist zu diesem Thema bereits ein Tutorial geplant.

Darum bleibt uns hier das window.onload nicht erspart. Der große Nachteil dabei ist, dass das erst ausgelöst wird, wenn alle Daten tatsächlich geladen worden sind. Also auch Bilder oder externe Quellen wie zum Beispiel Google Analytics. Tja, die Welt ist halt nicht perfekt. Ich hoffe aber, ihr wisst, worauf ich hinaus will.

3. Das Submit

Die anonyme Funktion dafür packt ihr also in(!) das window.onload. Damit ist garantiert, dass die Validierung erst nach dem vollständigen Laden der Seite stattfinden kann.


document.testform.onsubmit = function () 
{
  var check    = new checkForm(thisrequiredmail);
  check.verifyForm();       
 /*
  * Hier kommt später noch ein wenig Code,
  * daher geben wir erst mal false zurück
  */
  return false;    
}

Das ist doch Tinnef!

Da habt ihr nicht ganz Unrecht. Denn wenn da so ein Schnelltipper und -klicker sein Umwesen treibt, das gibt es normalerweise Probleme. Hier aber nicht, da das action-Attribut fehlt. Das Formular weiß also nicht, wohin es die Daten senden soll. Also wird hier einfach noch mal die formular.htm aufgerufen. Deaktiviert einfach JavaScript in eurem Browser und probiert es aus. Es kann in diesem(!) Fall nichts schief gehen. Wie man dennoch das Formular absendet, erfahrt im am Ende.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt