2009-10-26 31 views
27

Ich kann leicht ein HTML-Eingabefeld erstellen, das bereits Text enthält. Wenn der Benutzer jedoch auf das Eingabefeld klickt, verschwindet der Text nicht, sondern bleibt dort. Der Benutzer muss dann den zu typierenden Text manuell entfernen. Wie kann ich ein Eingabefeld erstellen, in dem der Text verschwindet, wenn der Benutzer auf das Eingabefeld klickt?Text im HTML-Feld verschwindet beim Klicken?

Antwort

3

Wie wäre es mit so etwas?

<input name="myvalue" type="text" onfocus="if(this.value=='enter value')this.value='';" onblur="if(this.value=='')this.value='enter value';">

Dies wird klar auf das erste Mal konzentriert, aber dann wird bei zukünftigen Schwerpunkte nicht klar, nachdem der Benutzer den Wert eingibt, wenn leer gelassen stellt sie wieder her den angegebenen Wert.

20

Um das zu erreichen, können Sie die beiden Ereignisse onfocus und onblur verwenden:

<input type="text" name="theName" value="DefaultValue" 
    onblur="if(this.value==''){ this.value='DefaultValue'; this.style.color='#BBB';}" 
    onfocus="if(this.value=='DefaultValue'){ this.value=''; this.style.color='#000';}" 
    style="color:#BBB;" /> 
+0

und was ist, wenn Benutzer die vlue eintritt, wird es leer Wert oder defaul Wert übergeben? mein Anwendungsfall ist auch das gleiche wie das, aber ich möchte, wenn der Benutzer nichts leerer Wert eingeben sollte zuweisen, wie gehen wir darüber? Irgendein Vorschlag? Und keine Verwendung des Plocholder-Attributs – mahesh

+0

@mahesh Was Sie tun können, ist ein Hintergrundbild mit dem gewünschten Text in sie geschrieben hinzufügen und OnClick Event Listener hinzufügen, die das Bild unsichtbar macht. –

+0

das ist eine großartige Lösung, wenn Sie noch IE9 unterstützen müssen! Vielen Dank! –

139

Was Sie wollen, dass die HTML5 placeholder Attribut ist zu tun, verwenden, die Sie einen Standardwert für Ihr Eingabefeld einstellen kann:

<input type="text" name="inputBox" placeholder="enter your text here">

Dies sollte erreichen, was Sie suchen. Seien Sie jedoch vorsichtig, da das Platzhalterattribut in Internet Explorer 9 und früheren Versionen nicht unterstützt wird.

+2

HTML5 löst dieses Problem für uns mit dem Platzhalterattribut. Keine Notwendigkeit, die Ereignisse erneut zu verwalten. Gute Antwort – Ron

+0

Eingabe Platzhalter Attribut unterstützt nicht in IE9 und IE8 ... für mehr bitte gehen Sie http://caniuse.com –

+0

Gibt es eine Möglichkeit, den Platzhalter verschwinden, wenn der Benutzer beginnt zu tippen, aber nicht verschwinden, wenn das Feld ist "konzentriert". –

3

versuchen Sie dieses eine heraus.

<label for="user">user</label> 
<input type="text" name="user" 
onfocus="if(this.value==this.defaultValue)this.value=''"  
onblur="if(this.value=='')this.value=this.defaultValue" 
value="username" maxlength="19" /> 

hoffe das hilft.

+0

und was passiert, wenn Benutzer den Vlue nicht eingeben, wird es leeren Wert oder defaul Wert übergeben? mein Anwendungsfall ist auch das gleiche wie das, aber ich möchte, wenn der Benutzer nichts leerer Wert eingeben sollte zuweisen, wie gehen wir darüber? Irgendein Vorschlag? Und keine Verwendung von Plocholder-Attribut – mahesh

5

Dies ist so einfach ich die Lösung denken, die alle Ihre Probleme lösen sollte:

<input name="myvalue" id="valueText" type="text" value="ENTER VALUE"> 

Das ist Ihre Submit-Button:

<input type="submit" id= "submitBtn" value="Submit"> 

dann setzen diese kleine jQuery in einer js-Datei:

//this will submit only if the value is not default 
$("#submitBtn").click(function() { 
    if ($("#valueText").val() === "ENTER VALUE") 
    { 
     alert("please insert a valid value"); 
     return false; 
    } 
}); 

//this will put default value if the field is empty 
$("#valueText").blur(function() { 
    if(this.value == ''){ 
     this.value = 'ENTER VALUE'; 
    } 
}); 

//this will empty the field is the value is the default one 
$("#valueText").focus(function() { 
    if (this.value == 'ENTER VALUE') { 
     this.value = ''; 
    } 
}); 

Und es funktioniert auch in älteren Browsern. Außerdem kann es leicht in normales Javascript umgewandelt werden, wenn Sie brauchen.

+0

Danke, es funktioniert auf IE9, die wir unterstützen müssen.Also konnte ich die Platzhalter-Sache nicht verwenden. Um die Einstellung des Wertes in dem Textfeld an einer Stelle zu behalten, habe ich jQuery verwendet, um den Wert in dem Feld für Dokument bereit zu setzen. $ (document) .ready (function() { \t/* set Sucheingabefeld Wert auf Last des Dokuments */ \t $ ('# Wertetext') val ("ENTER VALUE");. } – atsurti

4

einfach: <input type="text" name="email" value="e-mail..." onFocus="this.value=''">

Verwandte Themen