Was ist mit this?
Das Schlüsselwort this löst je nach Kontext zu einem unterschiedlichen Objekt auf. Allgemein gilt: Wenn eine Funktion über objekt.methode() als Methode eines Objekts aufgerufen wird, zeigt this auf das Objekt. Andernfalls zeigt es als Rückgriff auf das globale Objekt window.
<form onsubmit="[code lang=javascript]alert(this)
">[/code]
Hier zeigt this auf das form-Element, weil intern eine Funktion erzeugt wird, die in der Eigenschaft onsubmit des form-Elementobjekts gespeichert wird. Beim Eintreten des Ereignisses wird intern sozusagen formElement.onsubmit(event) aufgerufen, daher zeigt this auf das form-Elementobjekt.
<script>
[code lang=javascript]function meinefunk () {
alert(this);
}
</script
<form onsubmit="meinefunk()
">[/code]
Hier zeigt this nicht mehr auf das form-Element, sondern mangels Kontext auf das globale Objekt window. »this« vererbt sich hier also nicht.
Wenn du in der ausgelagerten Funktion auf das Formular zugreifen willst, dann kannst du das DOM-Elementobjekt an die Funktion als Parameter übergeben (hier wird auch zusätzlich das Event-Objekt übergeben):
<script>
[code lang=javascript]function meinefunk (event, formElement) {
alert(formElement);
}
</script
<form onsubmit="meinefunk(event, this)
"> [/code]
Siehe auch
http://molily.de/js/organisation-verfuegbarkeit.html#this
http://www.quirksmode.org/js/this.html
http://javascriptweblog.wordpress.com/2010/08/30/understanding-javascripts-this/
Mathias