2009-12-15 46 views
7

Me gustaría saber cómo poner texto en un cuadro de texto cuando se carga la página. Ejemplo: si tengo una página de inicio de sesión, tendría 2 cuadros de texto llamados "nombre de usuario" y "contraseña". Cuando la página se carga, quiero que el cuadro de texto se cargue con el "nombre de usuario" escrito adentro, así que no tendré que poner una etiqueta para eso afuera. Pero cuando el usuario hace clic dentro de la caja de texto debería desaparecer. ¿Cómo hago esto?Javascript "marcas de agua" para cuadros de texto

+0

http://stackoverflow.com/a/16471949/1257652 –

Respuesta

19
<input name="q" onfocus="if (this.value=='search') this.value = ''" type="text" value="search"> 

... desde el cuadro de búsqueda desbordamiento de pila.


También puede añadir el evento onblur para comprobar: if (this.value=='') this.value = 'search'

Esto sería volver a imprimir la marca de agua, cuando el usuario hace clic fuera del cuadro de texto y el campo está vacío.

+2

1 por simplicidad. – Brandon

+2

También haría que el texto sea más grisáceo y no negro – Faruz

0

JS:

function clearDefault(ctl){ 
     if(ctl.value==ctl.defaultValue) { ctl.value = ""; } 
    } 

En el cuadro de texto incluyen onfocus="clearDefault(this)" y establecer su texto a "nombre de usuario" o "contraseña".

+0

No utilice el atributo 'onfocus'. Use eventos en su lugar –

+2

Los atributos 'onfocus' (así como' onblur') son esencialmente eventos. Sus valores son iguales al cuerpo de una función vinculada al evento. Así que tener 'clearDefault (this)' para 'onfocus' es esencialmente tener este límite como su manejador de eventos' focus': 'function() {clearDefault (this); } ' –

4

En términos de los laicos:

  • Al centrarse en la entrada, si el valor es "nombre de usuario" y luego otra vez en ""
  • Al retirar el foco de la caja, si el valor es "" (es decir, se introdujo nada), colóquela en el "nombre de usuario" que todavía proporcionan información al usuario, ya que aún no se han introducido datos

el código:

<input value="Username" onfocus="if(this.value=='Username') this.value = ''" onblur="if(this.value=='') this.value = 'Username'" type="text" /> 
5

una forma más moderna es el uso de "comodín"

<input type="text" placeholder="search" /> 
+0

¡Esto es elegante! – theblackpearl

Cuestiones relacionadas