OOP/DOM-Scripting JavaScript - Einstiegstutorial 2 - Die anonymen Funktionen
1. Die Abschnitte
- Einführung
- Die Konstruktorfunktion
- Die anonymen Funktionen
- Methode 1
- Methode 2
- Ende und Fazit
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(this, required, mail);
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