Folgendes Problem:
Ich arbeite an einem Kontaktformular, bei dem die Vorbelegung der beim Anklicken verschwindet und beim Verlassen (sofern das jeweilige Feld nicht ausgefüllt wurde) wieder auftaucht. Bisher habe ich das so gelöst:
und das entsprechende Script:
In dieser Art funktioniert das auch, aber ich brauche für jedes weitere Eingabefeld 2 weitere Funktionen und das wird dann etwas unübersichtlich. Ich habe jetzt überlegt das so zu lösen:
und das Script:
Vom Prinzip her soll das so laufen: ich benötige nur noch 2 Funktionen. Dafür werden die jeweilige Variable des Feldes (feldVar), die den Zustand des Feldes speichert (0 für nicht ausgefüllt und 1 für ausgefüllt), der Feldname (feldName), der den Namen des betroffenen Feldes übergibt und bei leave() auch die Vorbelegung des Feldes (feldWert) übergeben. Dadurch sollen die Funktionen (mit den entsprechenden Variablen) bei jedem Feld funktionieren und es gibt nicht mehr für jedes einzelne Feld zwei extra Funktionen.
Aber irgendwie funktioniert das nicht. Kann mir jemand meine Fehler zeigen?
Ich arbeite an einem Kontaktformular, bei dem die Vorbelegung der beim Anklicken verschwindet und beim Verlassen (sofern das jeweilige Feld nicht ausgefüllt wurde) wieder auftaucht. Bisher habe ich das so gelöst:
Code:
<form name="kontakt" method="post" action="senden.php">
<input type="text" value="Vorname" onFocus="vornameAktiv()" onBlur="vornameLeave()">
</form>
Code:
<script type="text/javascript">
var vorname = "0";
function vornameAktiv() {
if (vorname == '0') {
document.kontakt.vorname.value = "";
}
vorname = "1";
document.kontakt.vorname.style.color="#000000";
document.kontakt.vorname.style.fontStyle="normal";
}
function vornameLeave() {
if (document.kontakt.vorname.value == '') {
document.kontakt.vorname.style.color="#808080";
document.kontakt.vorname.style.fontStyle="italic";
document.kontakt.vorname.value="Vorname";
vorname = "0";
}
}
</script>
In dieser Art funktioniert das auch, aber ich brauche für jedes weitere Eingabefeld 2 weitere Funktionen und das wird dann etwas unübersichtlich. Ich habe jetzt überlegt das so zu lösen:
Code:
<form name="kontakt" method="post" action="senden.php">
<input type="text" value="Vorname" onFocus="aktiv(vorname,'vorname')" onBlur="vorname=leave(vorname,'vorname','Vorname')">
</form>
und das Script:
Code:
<script type="text/javascript">
var vorname = "0";
function aktiv(feldVar,feldName) {
if (feldVar == '0') {
document.kontakt.feldName.value = "";
document.kontakt.feldName.style.color="#000000";
document.kontakt.feldName.style.fontStyle="normal";
}
}
function leave(feldVar,feldName,feldWert) {
if (document.kontakt.feldName.value == '') {
document.kontakt.feldName.style.color="#808080";
document.kontakt.feldName.style.fontStyle="italic";
document.kontakt.feldName.value=feldWert;
feldVar = "0";
} else {
feldVar = "1";
}
return feldVar;
}
</script>
Vom Prinzip her soll das so laufen: ich benötige nur noch 2 Funktionen. Dafür werden die jeweilige Variable des Feldes (feldVar), die den Zustand des Feldes speichert (0 für nicht ausgefüllt und 1 für ausgefüllt), der Feldname (feldName), der den Namen des betroffenen Feldes übergibt und bei leave() auch die Vorbelegung des Feldes (feldWert) übergeben. Dadurch sollen die Funktionen (mit den entsprechenden Variablen) bei jedem Feld funktionieren und es gibt nicht mehr für jedes einzelne Feld zwei extra Funktionen.
Aber irgendwie funktioniert das nicht. Kann mir jemand meine Fehler zeigen?