Text in inputs mit Mausklick verändern

SilentWarrior

Erfahrenes Mitglied
Moin´chen

Also, ich hab folgendes Problem. Ich will für mein GB ein Formular machen. Da soll aber nicht stehen Name: und dann ein input, sondern direkt nur das input mit dem Wort Name drin. wenn der user reinklickt, geht das name weg, und wenn er das feld wieder deaktiviert, kommt wieder name, sofern er nix reingeschrieben hat in der zwischenzeit. so, bis hierher sind alle mitgekommen. und hier zur übersicht auch noch der code:

<script type="text/javascript">
<!--
function click(i,j)
{
if(i == j)
i = "";
}
function blur(i,j)
{
if(i == "")
i = j;
}
//-->
< /script>


und in der datei:

<input type="text" size="20" name="name" value="Name" onClick="click(this.value,'Name')" onBlur="blur(this.value,'Name')">

ich hoffe, irgendjemand kann mir erklären warum's net geht. es gab hier glaub ich schon mal nen thread zu genau dem thema, allerdings find ich den nimmer.:(

thx schonmal

silentwarrior
 
Machs so:

<input type="text" size="20" name="name" value="Name" onFocus="if(this.value=='Name')this.value='';" onblur="if(this.value=='')this.value='Name';">
 
wow, danke für die schnelle hilfe.:)

allerdings wüsste ich jetzt schon noch gern, warum meine methode net funzt.

// edit: du weisst nicht zufällig auch, wie man das bei textareas macht?
 
Zuletzt bearbeitet:
Ganz einfache Lösung :)

Es dürfen keine Funktionen mit den reservierten Wörtern blur oder click benannt werden, da es bereits interne Methoden gibt, die diese Namen besitzen.....von daher erstmal umbennen!

Weiterhin ist es aber nicht funktionabel, wenn du innerhalb der Funktion versuchst, mit dem Argument i der Funktion versuchst, den Textfeldinhalt darzustellen, denn es wird nicht die komplette Referenz auf den Textfeldwert in der Form document.formname.feldname.value übergeben, sondern es wird lediglich der Wert übergeben - woher soll die Funktion da wissen, dass sie den Textfeldwert ändern soll? :)

Drittens hast du vergessen, dass ein input-Element im HTML-Dokument stets Teil eines form-Elementes ist, das solltest du also der Validität halber drumherumfügen, auch wenn es für dich scheinbar keine Relevanz besitzt.

Zu guter letzt - der vollständige Code:
PHP:
<script type="text/javascript" language="JavaScript"> 
<!-- 
function clickit (i,j) { 
    if (i == j) {
        document.theform.thename.value = "";
    }
} 
function blurit (i,j) { 
    if (i == "") {
        document.theform.thename.value = j;
    }
} 
//--> 
</ script>
(</ script> zusammen!)

als JavaScript in den <head>-Teil des Dokumentes und der <body>-Teil sieht in dem Falle wie folgt aus:
PHP:
<form name="theform">
<input type="text" size="20" name="thename" value="Name" onFocus="clickit(this.value,'Name')" onBlur="blurit(this.value,'Name')"> 
</form>
hth,
Geist
 
Zuletzt bearbeitet:
ok danke mal für die ausführliche, zwar etwas komplizierte aber doch einigermassen verständliche erklärung. ;)

aber jetzt doch noch wegen textarea - gibt's da auch sowas? oder kann man das nur mit inputs machen?
 
das is jetzt aber ganz klar falsch, muss man schon mal sagen. bei textarea ist nämlich die syntax etwas anders:

input - <input> und schluss

textarea - <textarea>text der drin steht</ textarea>

darum geht's ja eben auch nicht mit value bzw. mit text.
 
Zurück