Me gustaría tener un campo de entrada de texto que contenga el signo "$" al principio, y no importa qué edición se produzca en el campo, que el signo sea persistente.
Sería bueno si solo se aceptaran números como entrada, pero eso es solo una adición elegante.
Utilice un
.input-icon
div padre . Opcionalmente agregue.input-icon-right
.Alinee el icono verticalmente con
transform
ytop
, y configúrelopointer-events
ennone
para que los clics se enfoquen en la entrada. Ajuste elpadding
ywidth
según corresponda:A diferencia de la respuesta aceptada, esto mantendrá resaltado la validación de entrada, como un borde rojo cuando hay un error.
Ejemplo de uso de JSFiddle con Bootstrap y Font Awesome
fuente
float:left
alinput-symbol
divinput-symbol
contenedorfloat
es malo, así que lo estoy usandodisplay:inline-block
combinado convertical-align:bottom
ahora :) Sin embargo, no puedo hacer un violín rápidamente, hay demasiados CSS en mi ejemplo actual ;-)Puede envolver su campo de entrada en un intervalo, que usted
position:relative;
. Luego agrega con:before
content:"€"
su símbolo de moneda y lo creaposition:absolute
. Trabajando JSFiddleHTML
CSS
Actualizar Si desea colocar el símbolo del euro en el lado izquierdo o derecho del cuadro de texto. Trabajando JSFiddle
HTML
CSS
fuente
Como no puede hacer
::before
con lascontent: '$'
entradas y agregar un elemento absolutamente posicionado agrega html adicional, me gusta hacerlo con un CSS en línea SVG de fondo.Es algo parecido a esto:
Produce lo siguiente:
Nota: el código debe estar todo en una sola línea. El soporte es bastante bueno en los navegadores modernos, pero asegúrese de probar.
fuente
background-repeat: no-repeat;
ya que $ se repetía en el cuadro de entrada.background-image
puede que no sea compatible, o que el navegador puede representar el widget en sí mismo en lugar de utilizar los widgets proporcionados por el sistema.Terminé necesitando que el tipo permaneciera como un número, así que usé CSS para empujar el signo de dólar en el campo de entrada usando una posición absoluta.
fuente
Coloque el '$' delante del campo de entrada de texto, en lugar de dentro de él. Hace que la validación de datos numéricos sea mucho más fácil porque no tiene que analizar el '$' después del envío.
Puede, con JQuery.validate () (u otro), agregar algunas reglas de validación del lado del cliente que manejan la moneda. Eso le permitiría tener el '$' dentro del campo de entrada. Pero todavía tiene que hacer la validación del lado del servidor por seguridad y eso lo pone de nuevo en la posición de tener que eliminar el '$'.
fuente
Ver también: Restringir la entrada al cuadro de texto: permitir solo números y punto decimal
fuente
Si solo necesita ser compatible con Safari, puede hacerlo así:
y un campo de entrada como
<input class="currency" data-symbol="€" type="number" value="12.9">
De esta manera, no necesita una etiqueta adicional y mantiene la información del símbolo en el marcado.
fuente
Otra solución que prefiero es utilizar un elemento de entrada adicional para una imagen del símbolo de la moneda. Aquí hay un ejemplo que usa una imagen de una lupa dentro de un campo de texto de búsqueda:
html:
css:
Esto da como resultado la entrada en la barra lateral izquierda aquí:
https://fsfe.org
fuente
Acabo de usar: antes con la entrada y pasé $ como contenido
fuente
Para arrancar sus obras
No use class = "form-control" en el campo de entrada.
fuente
fuente
Ninguna de estas respuestas es realmente útil si le preocupa alinear el borde izquierdo con otros campos de texto en un formulario de entrada.
Recomendaría colocar el signo de dólar absolutamente a la izquierda alrededor de -10px o 5px a la izquierda (dependiendo de si lo desea dentro o fuera del cuadro de entrada). La solución interna requiere la dirección: rtl en la entrada css.
También puede agregar relleno a la entrada para evitar la dirección: rtl, pero eso alterará el ancho del contenedor de entrada para que no coincida con los otros contenedores del mismo ancho.
o
https://i.imgur.com/ajrU0T9.png
Ejemplo: https://plnkr.co/edit/yshyuRMd06K1cuN9tFDv?p=preview
fuente
%
fuente
Sí, si está utilizando bootstrap, esto funcionaría.
y
fuente
fuente