2009-07-03 23 views
5

Lo vedo in tutto il web, ma mi chiedevo se qualcuno avesse il codice JavaScript per il modo più semplice per mostrare il valore di input su sfocatura, ma nascondere a fuoco.Come mostrare/nascondere il valore di input sullo stato attivo?

+0

Eh? Cosa intendi per spettacolo? Cosa stai cercando di fare esattamente? –

+1

Quindi l'input avrà ad esempio "Cerca ..." all'interno di esso, e quando si fa clic sull'input, esso diventerebbe vuoto. Credo di avere già la risposta, ma grazie comunque Ian! =] –

+1

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

risposta

0

Questo è quello che uso su my blog. Basta andare lì e controllare il codice sorgente dietro.

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

Il vostro campo di input dovrebbe essere simile a questo:

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

L'approccio più semplice che io conosca è il seguente:

<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

Se non si cura di HTML valido, usi l'attributo placeholder. Funzionerà fuori dalla scatola su un Safari, ed è possibile aggiungere alcuni JS non invadenti per simulare questo comportamento in altri browser.

Più lettura:

e Google. ;-)

La soluzione è simile a quella pubblicata da Josh Stodola, ma è più flessibile e universale.

+0

Immagino di non preoccuparsi di HTML valido non è mai buono, non è vero? Inoltre, l'ottimizzazione per un solo browser ... – Juri

+0

Validator è solo uno strumento. Puoi ignorare l'output finché sai cosa stai facendo.E l'ottimizzazione per lo standard imminente non è poi così male dopotutto :) Il segnaposto –

+0

sembra valido ora tranne per il buon vecchio IE. – kdubs

17

Questo sempre lavorato per me:

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

preferisco jQuery modo:

$(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); 
      } 
     }); 
    }); 
}); 

Viene modificato Hide Form Input Values On Focus With jQuery da Zack Perdue.

17

Dal momento che questo si presenta ancora su google, mi piacerebbe sottolineare che con HTML 5 è possibile utilizzare l'attributo segnaposto con un input per ottenere questo in un pezzo di html.

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

Segnaposto è ora standard tra i browser moderni, quindi questo sarebbe davvero il metodo preferito.

0

Per tutti i 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" /> 

Per versione più recente del browser:

<input type="text" name="inputname" placeholder="Your value" /> 
Problemi correlati