Hallo.
zumindest sollte mit onChange das funktionieren. Der Focus ist ja auch da, wenn ich etwas lösche.
???
onfocus="var fokus=true" onblur="var fokus=false"
onChange="(fokus==true)?aktion_fokus(this.value):aktion_blur(this.value)"
Hmm, jetzt lass uns mal überlegen ob das nicht das selbe ist wie:
onfocus="aktion_fokus(this.value)"
onblur="aktion_blur(this.value)"
Ja, ist es, zumindest annähernd, da das funktionieren würde. Und jetzt lass uns mal weiter denken, brauchen wir dann onchange, ähm nein, brauchen wir nicht.
Zumal onchange erst bei erfolgter Wertänderung und beim Verlassen des Formularfeldes feuert, das heißt wiederum, dass das (sofern das Ganze überhaupt funktionieren sollte), was beim onfocus passieren soll gar nicht passieren _kann_.
Und was folgt daraus? Richtig, wir machen lieber sowas hier:
<form action="#" onsubmit="if(this.TextfeldName.value == this.TextfeldName.defaultValue){this.TextfeldName.name = ''; this.TextfeldName.value = ''}">
<textarea name="TextfeldName" onfocus="if(this.value == this.defaultValue){this.value = ''}" onblur="if(this.value == ''){this.value = this.defaultValue}">Text in der Textarea</textarea><br>
<input type="submit">
</form>
onChange funzt aber nicht bei allen Browser, daher könnte man mit setInterval eine Dauerschleife machen, die ständig die Veränderungen abfragt, und bei Absenden des Formulars gecancelt wird.
Das ist z.B. bei einer Zensur vor dem Absenden (böse Worte, verbotene Codes) oder einer Rechtsschreibprüfung sinnvoll.
Das reicht auch noch beim Submit, welcher dann immer noch mit return false unterbrochen werden kann.
onfocus='setInterval("aktion_fokus("+this.value+")",500)' onBlur='setInterval("aktion_blur("+this.value+")",500)'
Ich hab auch gern mehrere Intervalle gleichzeitig am laufen (das war Ironie).
Gruß
Norbert