formularfeld mittels einer funktion leeren
benni
- javascript
hi!
also ich hab ein formular gebastelt, in dem in den feldern schon etwas drinsteht
(<input type="text" name="name" value="Ihr Name">)
wenn man mit der maus draufklickt (OnFocus) soll das feld dann geleert werden (this.value='').
also:
<input [...] onFocus="this.value=''">
das geht auch so.
jetzt will ich das ganze aber mit einer funktion verbinden, also dass anstatt onFocus="this.value=''" folgendes steht:
onFocus="Leeren();"
wobei ich folgendes im head definiert hab:
funktion Leeren() {
this.value='';
}
es soll dann also darauf hinauslaufen, dass die funktion das feld nur dann leert, wenn noch der Standart im feld steht (hier: "name"), und das feld so lässt, wenn etwas anderes drin steht (z.b. "benni"...).
dazu ist mein versuch:
funktion Leeren(value) {
if(this.value==value) {
this.value = '';
}
else {
}
die dann mit
<input [...] value="Name" onFocus="Leeren(Name);">
aufgerufen wird.
geht aber net... (schon beim Laden zeigt der IE "Fehler auf der Seite" und wenn ich das feld anklicke, passiert nix...)
hat jemand ne a´hnung, warum?
viele grüße,
benni
Hallo benni,
ohne jede Garantie versuche folgendes:
onFocus="Leeren(this);"
funktion Leeren(objekt)
{
objekt.value='';
}
Gruß
Eidgenosse
Hallo
Ich bin für ne kombi aus dem beiden, denn wie mir der vorschlag von benni erscheind soll in dem prarameter übergeben werden, bei welcher value gelöscht werden soll. demnach
onFocus="Leeren(this, 'Name');"
funktion Leeren(obj, val) {
if (obj.value == val) obj.value = '';
}
Grüße
David
Ich glaub nicht das dass funktioniert. Das Problem stellt das this-objekt dar.
tag oder deren eigenschaften anzusprechen, und das browserunabhängig geht am besten mit document.getElementsByName("Name")[0].eigenschaft
also:
function test(bez){
if(document.getElementsByName(bez)[0].value!="text"){
document.getElementsByName(bez)[0].value = "";}
}
und
<input id="zutesten" name="zutesten" onFocus="test(zutesten)">
ich habs jetzt nicht ausprobiert, aber so realisiere ich immer meine mouseover-effekte
vielglück damit
matze
Ich glaub nicht das dass funktioniert. Das Problem stellt das this-objekt dar.
tag oder deren eigenschaften anzusprechen, und das browserunabhängig geht am besten mit document.getElementsByName("Name")[0].eigenschaft
also:
function test(bez){
if(document.getElementsByName(bez)[0].value!="text"){
document.getElementsByName(bez)[0].value = "";}
}
und
<input id="zutesten" name="zutesten" onFocus="test(zutesten)">ich habs jetzt nicht ausprobiert, aber so realisiere ich immer meine mouseover-effekte
hättse es mal ausprobiert. Das was du da machst funktioniert wenn nur in neuen Browsern (in wirklichkeit funzt es gar nit) und ist absolut nicht wiederverwendbar. Während 'this' immer funktioniert.
Struppi.