Textarea:Text bei Klick verschwinden
maxgarine
- javascript
Also, wie der Titel sagt soll beim Klick auf eine Textarea der vorgegebene Text verschwinden.
Mein bisheriger Javascript-Code
function clean_up()
{
if(document.form.Textbox.value == 'Hier Text eingeben')
{
document.form.Textbox.value= '';
document.form.Textbox.focus();
}
}
Mein HTML-Code:
<textarea id="Textbox" name="Textbox" rows="10" cols="50" onfocus="clean_up()" >Hier Text eingeben</textarea>
hi,
ahem... und Deine Problembeschreibung? Fehlermeldung aus der Javascript Konsole?
if(document.form.Textbox.value == 'Hier Text eingeben')
^^^^^^
form ist in js eine reservierter Begriff. Verwende einen anderen Namen für Deine Form
Gruesse, Joachim
document.form
form ist in js eine reservierter Begriff.
Für was ist denn reserviert?
Mathias
document.form
form ist in js eine reservierter Begriff.Für was ist denn reserviert?
In vielen Browsern für das form-Tag im allgemeinen (nicht mit document.forms verwechseln).
Gruß, LX
document.form
In vielen Browsern für das form-Tag im allgemeinen (nicht mit document.forms verwechseln).
Was ist denn "das form-Tag im allgemeinen"?
Seit wann hat ein HTML-Element ein zugehöriges globales Objekt "im Allgemeinen"?
Meinst du vielleicht das DOM-Interface, dessen prototype-Eigenschaft sich erweitern lässt? Das steht üblicherweise unter dem Element HTMLFormElement zur Verfügung.
Also ich kenne keinen Browser, in dem document.form von Haus aus gesetzt ist.
Mathias
Hi,
Also ich kenne keinen Browser, in dem document.form von Haus aus gesetzt
in der Tat ist form als referenz auf die form nur im formelement gesetzt. Hat der Mattes mich wieder ertappt...
Gruesse, Joachim
Hallo,
Also, wie der Titel sagt soll beim Klick auf eine Textarea der vorgegebene Text verschwinden.
und was für ein Problem hast du dabei?
function clean_up()
{
if(document.form.Textbox.value == 'Hier Text eingeben')
Vergleiche hier besser nicht mit einem konstanten String, sondern mit der Eigenschaft defaultValue. Dann brauchst du den Text nur einmal -nämlich im HTML- anzugeben.
> ~~~javascript
{
> document.form.Textbox.value= '';
> document.form.Textbox.focus();
Der Aufruf von focus() ist eigentlich überflüssig, wenn du die Funktion ohnehin onfocus aufrufst.
<textarea id="Textbox" name="Textbox" rows="10" cols="50" onfocus="clean_up()" >Hier Text eingeben</textarea>
Das Ganze kann man noch etwas eleganter machen, indem man im Eventhandler onfocus="cleanup(this)" notiert und dann innerhalb der Funktion direkt auf das übergebene Element zugreift. Dann kann man nämlich dieselbe Funktion für beliebig viele ein- oder mehrzeilige Eingabefelder verwenden.
Ich bin aber persönlich der Ansicht, dass das Vorhaben insgesamt unvorteilhaft ist. Der Sinn eines Eingabefeldes sollte sich durch den Kontext oder durch sein Label erschließen, ein zusätzlicher Hinweis durch die Feld-Vorbelegung ist daher IMHO überflüssig.
So long,
Martin
Folgender Gedanke:
Das HTML sollte semantisch bleiben, d.h. der Text, der im Form steht, ist eigentlich ein label und gehört auch in ein derartiges Tag. Der Trick besteht darin, dieses 1. per JS-angesteuertem CSS über der Textarea anzuzeigen und 2. bei Bedarf verschwinden zu lassen.
Gruß, LX