Quiero que el cuadro de búsqueda en mi página web muestre la palabra "Buscar" en cursiva gris. Cuando el cuadro recibe el foco, debería verse como un cuadro de texto vacío. Si ya hay texto, debe mostrar el texto normalmente (negro, sin cursiva). Esto me ayudará a evitar el desorden quitando la etiqueta.
Por cierto, esta es una búsqueda de Ajax en la página , por lo que no tiene botón.
javascript
html
Michael L Perry
fuente
fuente
Respuestas:
Otra opción, si está contento de tener esta característica solo para los navegadores más nuevos, es utilizar el soporte ofrecido por el atributo de marcador de posición de HTML 5 :
En ausencia de cualquier estilo, en Chrome esto se ve así:
Puedes probar demos aquí y en HTML5 Placeholder Styling con CSS .
Asegúrese de verificar la compatibilidad del navegador de esta función . El soporte en Firefox se agregó en 3.7. Chrome está bien. Internet Explorer solo agregó soporte en 10. Si apunta a un navegador que no admite marcadores de posición de entrada, puede usar un complemento jQuery llamado jQuery HTML5 Placeholder , y luego simplemente agregue el siguiente código JavaScript para habilitarlo.
fuente
Eso se conoce como marca de agua de cuadro de texto, y se realiza a través de JavaScript.
o si usa jQuery, un enfoque mucho mejor:
fuente
Puede establecer el marcador de posición utilizando el
placeholder
atributo en HTML ( soporte del navegador ). Elfont-style
ycolor
se puede cambiar con CSS (aunque el soporte del navegador es limitado).fuente
Puede agregar y eliminar una clase CSS especial y modificar el valor de entrada
onfocus
/onblur
con JavaScript:Luego, especifique una clase de pista con el estilo que desea en su CSS, por ejemplo:
fuente
La mejor manera es conectar sus eventos de JavaScript utilizando algún tipo de biblioteca de JavaScript como jQuery o YUI y colocar su código en un archivo externo .js.
Pero si desea una solución rápida y sucia, esta es su solución HTML en línea:
Actualizado : se agregó el material para colorear solicitado.
fuente
Publiqué una solución para esto en mi sitio web hace algún tiempo. Para usarlo, importe un solo
.js
archivo:Luego anote cualquier entrada que desee tener pistas con la clase CSS
hintTextbox
:Más información y ejemplos están disponibles aquí .
fuente
Aquí hay un ejemplo funcional con el caché de la biblioteca de Google Ajax y algo de magia jQuery.
Este sería el CSS:
Este sería el código JavaScript:
Y este sería el HTML:
Espero que sea suficiente para interesarle tanto en GAJAXLibs como en jQuery.
fuente
Ahora se vuelve muy fácil. En html podemos dar el atributo de marcador de posición para los elementos de entrada .
p.ej
consulte para obtener más detalles: http://www.w3schools.com/tags/att_input_placeholder.asp
fuente
Para usuarios de jQuery: el enlace jQuery de naspinski parece roto, pero intente con este: http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/
Obtendrá un tutorial gratuito sobre el complemento jQuery como bonificación. :)
fuente
Encontré que el complemento jQuery jQuery Watermark es mejor que el que aparece en la respuesta superior. ¿Por qué mejor? Porque admite campos de entrada de contraseña. Además, establecer el color de la marca de agua (u otros atributos) es tan fácil como crear una
.watermark
referencia en su archivo CSS.fuente
Esto se llama "marca de agua".
Encontré la marca de agua jQuery plugin jQuery que, a diferencia de la primera respuesta, no requiere configuración adicional (la respuesta original también necesita una llamada especial antes de enviar el formulario).
fuente
Use jQuery Form Notifier : es uno de los complementos más populares de jQuery y no sufre los errores que algunas de las otras sugerencias de jQuery hacen aquí (por ejemplo, puede diseñar libremente la marca de agua, sin preocuparse si se guardará en el base de datos).
jQuery Watermark usa un único estilo CSS directamente en los elementos del formulario (noté que las propiedades de tamaño de fuente CSS aplicadas a la marca de agua también afectaron los cuadros de texto, no lo que quería). La ventaja de jQuery Watermark es que puede arrastrar y soltar texto en los campos (jQuery Form Notifier no lo permite).
Otro sugerido por otros (el que está en digitalbrush.com), enviará accidentalmente el valor de la marca de agua a su formulario, por lo que le recomiendo que no lo haga.
fuente
Use una imagen de fondo para representar el texto:
Entonces todo lo que tiene que hacer es detectar
value == 0
y aplicar la clase correcta:Y el código jQuery JavaScript se ve así:
fuente
Puede hacer que un cuadro lea "Buscar" y luego, cuando se cambie el foco, se eliminará el texto. Algo como esto:
<input onfocus="this.value=''" type="text" value="Search" />
Por supuesto, si lo hace, el propio texto del usuario desaparecerá cuando haga clic. Así que probablemente quieras usar algo más robusto:
fuente
Cuando se cargue la página por primera vez, haga que aparezca Buscar en el cuadro de texto, de color gris si así lo desea.
Cuando el cuadro de entrada recibe el foco, seleccione todo el texto en el cuadro de búsqueda para que el usuario pueda comenzar a escribir, lo que eliminará el texto seleccionado en el proceso. Esto también funcionará bien si el usuario quiere usar el cuadro de búsqueda por segunda vez, ya que no tendrá que resaltar manualmente el texto anterior para eliminarlo.
fuente
Me gusta la solución de "Knowledge Chikuse": simple y clara. Solo necesita agregar una llamada para desenfocar cuando la carga de la página está lista, lo que establecerá el estado inicial:
fuente
Desea asignar algo como esto a onfocus:
y esto para onblur:
(Puede usar algo un poco más inteligente, como una función de marco, para cambiar el nombre de clase si lo desea).
Con algunos CSS como este:
fuente
Estoy usando una solución javascript simple de una línea que funciona muy bien. Aquí hay un ejemplo tanto para textbox como para textarea:
El único "inconveniente" es validar en $ _POST o en la validación de Javascript antes de hacer algo con el valor del campo. Es decir, verificar que el valor del campo no sea "Texto".
fuente
fuente
La etiqueta simple 'requerido' de HTML es útil.
Especifica que se debe completar un campo de entrada antes de enviar el formulario o presionar el botón enviar. Aquí hay un ejemplo
fuente
Usuario AJAXToolkit de http://asp.net
fuente