2011-11-12 29 views
5

Me gustaría saber cómo implementar algo así como el desbordamiento de pila cuando publica una pregunta: "Al menos una etiqueta como (css html asp.net), máx. 5 etiquetas.Tener texto que se borra al hacer clic en él

¿Cómo puedo implementar algo como esto para una entrada de texto en html, donde se desvaneció en parte, pero cuando se escribe, que no se presenta, y no se desvaneció.

no me importa cómo para hacer esto, siempre y cuando funciona.

Gracias.

Respuesta

7

La opción más sencilla es utilizar el atributo placeholder:

<input type="text" placeholder="At least one tag, such as 'html', 'asp.net', max five tags." /> 

JS Fiddle demo.

Si compatibilidad cruzada es un requisito, entonces JavaScript es también una opción:

var inputs = document.getElementsByTagName('input'); 

for (i=0; i<inputs.length; i++){ 
    if (inputs[i].hasAttribute('data-hint')){ 
     inputs[i].value = inputs[i].getAttribute('data-hint'); 
      inputs[i].style.color = '#999'; 

     inputs[i].onclick = function(){ 
      this.value = ''; 
     }; 
     inputs[i].onblur = function(){ 
      if (this.value == '' || this.value == this.getAttribute('data-hint')){ 
       this.value = this.getAttribute('data-hint'); 
       this.style.color = '#000'; 
      } 
     }; 
    } 
} 

JS Fiddle demo.

O, con jQuery:

$('input:text').each(
    function(){ 
     $(this).val($(this).attr('data-hint')); 
      $(this).css('color','#999'); 
    }).click(
    function(){ 
     $(this).val(''); 
      $(this).css('color','#000'); 
    }).blur(
    function(){ 
     if ($(this).val() == ''){ 
      $(this).val($(this).attr('data-hint')); 
      $(this).css('color','#999'); 
     } 
    }); 

JS Fiddle demo.

Referencias:

vainilla JavaScript:

jQuery:

+0

Dos cosas a tener en cuenta aquí: 1) haga clic en evento en realidad debe ser el enfoque. 2) esto no se ocupa de la entrega del formulario. Tendría que borrar los valores predeterminados del lado del servidor o manejar el evento de envío. –

5
<input type="text" name="booga" placeholder="This is default text" /> 
4
<input type="text" placeholder="Your text here" /> 

Requiere navegador hasta a la fecha, pero no utiliza ningún código de ningún tipo.

2
<input type="text" placeholder="Default text goes here..."/> 

Como @ respuesta de Kolink explica, hacer esto requiere un navegador actualizado, pero no lo utiliza código.

Cuestiones relacionadas