Eu gostaria de ter um campo de entrada de texto contendo o sinal "$" logo no início, e não importa a edição que ocorra no campo, para que o sinal seja persistente.
Eu seria bom se apenas números fossem aceitos para entrada, mas isso é apenas uma adição extravagante.
Use um
.input-icon
div pai . Adicione opcionalmente.input-icon-right
.Alinhe o ícone verticalmente com
transform
etop
e definapointer-events
comonone
para que os cliques foquem na entrada. Ajuste opadding
ewidth
conforme apropriado:Ao contrário da resposta aceita, isso manterá o destaque de validação de entrada, como uma borda vermelha quando houver um erro.
Exemplo de uso do JSFiddle com Bootstrap e Font Awesome
fonte
float:left
aoinput-symbol
divinput-symbol
contêinerfloat
é ruim, então estou usandodisplay:inline-block
combinado comvertical-align:bottom
agora :) Não consigo fazer um violino rapidamente, há muitos outros CSS acontecendo no meu exemplo atual ;-)Você pode envolver seu campo de entrada em um intervalo, que você
position:relative;
. Então você adiciona com:before
content:"€"
seu símbolo de moeda e o fazposition:absolute
. JSFiddle de trabalhoHTML
CSS
Atualizar Se você deseja colocar o símbolo do euro à esquerda ou à direita da caixa de texto. JSFiddle de trabalho
HTML
CSS
fonte
Já que você não pode fazer
::before
comcontent: '$'
entradas e adicionar um elemento posicionado absolutamente adiciona html extra - eu gosto de fazer em um css SVG embutido de fundo.É mais ou menos assim:
Ele produz o seguinte:
Nota: o código deve estar em uma única linha. O suporte é muito bom em navegadores modernos, mas certifique-se de testar.
fonte
background-repeat: no-repeat;
conforme o $ se repetia na caixa de entrada.background-image
pode não ser compatível ou o navegador pode renderizar o próprio widget em vez de usar os widgets fornecidos pelo sistema.Acabei precisando que o tipo ainda permanecesse como um número, então usei CSS para empurrar o cifrão no campo de entrada usando uma posição absoluta.
fonte
Coloque o '$' na frente do campo de entrada de texto, em vez de dentro dele. Isso torna a validação de dados numéricos muito mais fácil porque você não precisa analisar o '$' após o envio.
Você pode, com JQuery.validate () (ou outro), adicionar algumas regras de validação do lado do cliente que lidam com moeda. Isso permitiria que você tivesse o '$' dentro do campo de entrada. Mas você ainda tem que fazer a validação do lado do servidor para segurança e isso o coloca de volta na posição de ter que remover o '$'.
fonte
Consulte também: Restringindo a entrada para caixa de texto: permitindo apenas números e casas decimais
fonte
Se você só precisa oferecer suporte ao Safari, pode fazer assim:
e um campo de entrada como
<input class="currency" data-symbol="€" type="number" value="12.9">
Desta forma, você não precisa de uma tag extra e mantém as informações do símbolo na marcação.
fonte
Outra solução que prefiro é usar um elemento de entrada adicional para uma imagem do símbolo monetário. Aqui está um exemplo de uso da imagem de uma lupa em um campo de texto de pesquisa:
html:
css:
Isso resulta na entrada na barra lateral esquerda aqui:
https://fsfe.org
fonte
Acabei de usar: antes com a entrada e passei $ como o conteúdo
fonte
Para inicializar seus trabalhos
Não use class = "form-control" no campo de entrada.
fonte
fonte
Nenhuma dessas respostas realmente ajuda se você estiver preocupado em alinhar a borda esquerda com outros campos de texto em um formulário de entrada.
Eu recomendo posicionar o cifrão absolutamente à esquerda cerca de -10px ou 5px à esquerda (dependendo se você quiser dentro ou fora da caixa de entrada). A solução interna requer direção: rtl no css de entrada.
Você também pode adicionar preenchimento à entrada para evitar a direção: rtl, mas isso irá alterar a largura do contêiner de entrada para não corresponder aos outros contêineres da mesma largura.
ou
https://i.imgur.com/ajrU0T9.png
Exemplo: https://plnkr.co/edit/yshyuRMd06K1cuN9tFDv?p=preview
fonte
%
fonte
Sim, se você estiver usando bootstrap, isso funcionaria.
e
fonte
fonte