¿Hay una forma rápida de crear un elemento de texto de entrada con un icono a la derecha para borrar el elemento de entrada en sí (como el cuadro de búsqueda de Google)?
Miré a mi alrededor pero solo encontré cómo poner un ícono como fondo del elemento de entrada. ¿Hay un complemento jQuery o algo más?
Quiero el icono dentro del elemento de texto de entrada, algo como:
--------------------------------------------------
| X|
--------------------------------------------------
javascript
jquery
html
css
Giovanni Di Milia
fuente
fuente
Respuestas:
Agregue un
type="search"
a su entradaEl soporte es bastante decente pero no funcionará en IE <10
Entrada limpiable para navegadores antiguos
Si necesita soporte para IE9 aquí hay algunas soluciones
Usando un estándar
<input type="text">
y algunos elementos HTML:Usando solo un
<input class="clearable" type="text">
(Sin elementos adicionales)establece
class="clearable"
y juega con su imagen de fondo:jsBin demo
El truco consiste en colocar algo de relleno derecho (usé 18px)
input
y empujar la imagen de fondo hacia la derecha, fuera de la vista (solíaright -10px center
).Ese relleno de 18px evitará que el texto se oculte debajo del icono (mientras esté visible).
jQ agregará la clase
x
(siinput
tiene valor) mostrando el ícono clear.Ahora todo lo que necesitamos es apuntar con jQ las entradas con clase
x
y detectarmousemove
si el mouse está dentro de esa área "x" de 18px; si está adentro, agregue la claseonX
.Al hacer clic en la
onX
clase, se eliminan todas las clases, se restablece el valor de entrada y se oculta el icono.7x7px gif:
Cadena Base64:
fuente
.on('touchstart click', '.onX', ...
para.on('touchstart click', '.onX, .x', ...
que funcione en iOS.Podría sugerir, si está de acuerdo con que esto se limite a los navegadores compatibles con html 5, simplemente use:
Demostración de JS Fiddle
Es cierto que en Chromium (Ubuntu 11.04), esto requiere que haya texto dentro del
input
elemento antes de que aparezca la imagen / funcionalidad de texto claro.Referencia:
fuente
Podría usar un botón de reinicio diseñado con una imagen ...
Véalo en acción aquí: http://jsbin.com/uloli3/63
fuente
He creado un cuadro de texto limpiable en solo CSS. No requiere código javascript para que funcione
a continuación se muestra el enlace de demostración
http://codepen.io/shidhincr/pen/ICLBD
fuente
Según MDN ,
<input type="search" />
actualmente es compatible con todos los navegadores modernos:Sin embargo, si desea un comportamiento diferente que sea consistente en todos los navegadores, aquí hay algunas alternativas livianas que solo requieren JavaScript:
Opción 1 - Mostrar siempre la 'x': (ejemplo aquí)
Opción 2: solo muestra la 'x' al pasar el cursor sobre el campo: (ejemplo aquí)
Opción 3: solo muestre la 'x' si el
input
elemento tiene un valor: (ejemplo aquí)fuente
Dado que ninguna de las soluciones que vuelan realmente cumplió con nuestros requisitos, se nos ocurrió un simple complemento jQuery llamado jQuery-ClearSearch :
usarlo es tan fácil como:
Ejemplo: http://jsfiddle.net/wldaunfr/FERw3/
fuente
EDITAR: Encontré este enlace. Espero eso ayude. http://viralpatel.net/blogs/2011/02/clearable-textbox-jquery.html
Has mencionado que lo quieres a la derecha del texto de entrada. Entonces, la mejor manera sería crear una imagen al lado del cuadro de entrada. Si está buscando algo dentro del cuadro, puede usar la imagen de fondo, pero es posible que no pueda escribir un guión para borrar el cuadro.
Por lo tanto, inserte una imagen y escriba un código JavaScript para borrar el cuadro de texto.
fuente
<input type="text" name="Search" value="Search..." onclick="this.value='';">
Si quiere que sea como Google, entonces debe saber que la "X" no está realmente dentro de
<input>
ellos, están uno al lado del otro con el contenedor exterior diseñado para aparecer como el cuadro de texto.HTML:
CSS:
Ejemplo: http://jsfiddle.net/VTvNX/
fuente
¿¿Algo como esto??
Jsfiddle Demo
fuente
fuente
Puedes hacerlo con estos comandos (sin Bootstrap).
fuente
Aquí hay un complemento jQuery (y una demostración al final).
http://jsfiddle.net/e4qhW/3/
Lo hice principalmente para ilustrar un ejemplo (y un desafío personal). Aunque los votos positivos son bienvenidos, las otras respuestas se entregan a tiempo y merecen su debido reconocimiento.
Aún así, en mi opinión, está sobredimensionado (a menos que forme parte de una biblioteca de IU).
fuente
x
botónHe escrito un componente simple usando jQuery y bootstrap. Pruébalo: https://github.com/mahpour/bootstrap-input-clear-button
fuente
Utilizando un complemento jquery, lo he adaptado a mis necesidades agregando opciones personalizadas y creando un nuevo complemento. Puede encontrarlo aquí: https://github.com/david-dlc-cerezo/jquery-clearField
Un ejemplo de un uso simple:
Obteniendo algo como esto:
fuente
jQuery Mobile ahora tiene esto incorporado:
Documentos de Jquery Mobile API TextInput
fuente
No es necesario incluir CSS o archivos de imagen. No es necesario incluir toda esa biblioteca jQuery UI de artillería pesada. Escribí un plugin jQuery liviano que hace la magia por ti. Todo lo que necesitas es
jQuery
y el complemento . =)Violín aquí: jQuery InputSearch demo .
fuente