2009-07-03 13 views
5

Ich sehe dies überall im Web, aber ich frage mich, ob jemand den JavaScript-Code für die einfachste Möglichkeit hat, den Eingabewert für die Unschärfe anzuzeigen, sich aber im Fokus zu verstecken.Wie Ein-/Ausblenden des Eingabewerts im Fokus?

+0

Huh? Was meinst du mit Show? Was genau versuchst du zu tun? –

+1

So wird die Eingabe zum Beispiel "Suche ..." haben, und wenn Sie auf die Eingabe klicken, würde es leer bleiben. Ich glaube, ich habe bereits die Antwort, aber danke Ian! =] –

+1

Siehe http://stackoverflow.com/questions/1073428/what-the-best-way-to-display-a-default-text-in-textbixes-and-texttareas/1073514#1073514 – Quentin

Antwort

0

Dies ist, was ich auf my blog verwende. Geh einfach hin und sieh dir den Quellcode an.

function displaySearchText(text){ 
    var searchField = document.getElementById('searchField'); 
    if(searchField != null) 
     searchField.value = text; 
} 

Ihre Eingabefeld wie folgt aussehen sollte:

<input id='searchField' name='q' onblur='displaySearchText("Search...");' onfocus='displaySearchText("");' onkeydown='performSearch(e);' type='text' value='Search...'/> 
5

Der einfachste Ansatz, den ich kenne ist die folgende:

<input 
    name="tb" 
    type="text" 
    value="some text" 
    onblur="if (this.value=='') this.value = 'some text'" 
    onfocus="if (this.value=='some text') this.value = ''" /> 
1

Wenn Sie nicht über gültige HTML-Pflege, Sie verwenden das Attribut placeholder. Es funktioniert bei einer Safari sofort und Sie können einige unauffällige JS hinzufügen, um dieses Verhalten in anderen Browsern nachzuahmen.

More reading:

und Google. ;-)

Die Lösung ähnelt der von Josh Stodola, aber es ist flexibler und universeller.

+0

Ich denke nicht zu Vorsicht bei gültigem HTML ist nie gut, oder? Außerdem nur für einen Browser optimieren ... – Juri

+0

Validator ist nur ein Werkzeug. Sie können die Ausgabe ignorieren, solange Sie wissen, was Sie tun.Und die Optimierung für den kommenden Standard ist schließlich nicht so schlecht :) –

+0

Platzhalter scheint jetzt gültig zu sein, außer für guten alten IE. – kdubs

17

Diese immer für mich gearbeitet:

<input 
    type="text" 
    value="Name:" 
    name="visitors_name" 
    onblur="if(value=='') value = 'Name:'" 
    onfocus="if(value=='Name:') value = ''" 
/> 
7

ziehe ich jQuery Weg:

$(function(){ 
    /* Hide form input values on focus*/ 
    $('input:text').each(function(){ 
     var txtval = $(this).val(); 
     $(this).focus(function(){ 
      if($(this).val() == txtval){ 
       $(this).val('') 
      } 
     }); 
     $(this).blur(function(){ 
      if($(this).val() == ""){ 
       $(this).val(txtval); 
      } 
     }); 
    }); 
}); 

Es Hide Form Input Values On Focus With jQuery von Zack Perdue modifiziert wird.

17

Da dies immer noch auf Google auftaucht, möchte ich darauf hinweisen, dass Sie mit HTML 5 das Platzhalterattribut mit einer Eingabe verwenden können, um dies in einem Stück HTML zu erreichen.

<input type="text" id="myinput" placeholder="search..." /> 

Platzhalter ist jetzt in modernen Browsern Standard, so dass dies wirklich würde die bevorzugte Methode sein.

0

Für alle Browser:

<input onfocus="if(this.value == 'Your value') { this.value = '';}" onblur="if(this.value == '') { this.value = 'Your value';}" value="Your value" type="text" name="inputname" /> 

Für neueste Version des Browser:

<input type="text" name="inputname" placeholder="Your value" /> 
Verwandte Themen