J'aimerais avoir un champ de saisie de texte contenant le signe "$" au tout début, et quelle que soit la modification apportée au champ, pour que le signe soit persistant.
Je serais bien si seuls les chiffres étaient acceptés pour l'entrée, mais ce n'est qu'un ajout sophistiqué.
Utilisez un
.input-icon
div parent . Ajoutez éventuellement.input-icon-right
.Alignez l'icône verticalement avec
transform
ettop
, et réglez-lapointer-events
surnone
pour que les clics se concentrent sur l'entrée. Ajustezpadding
etwidth
selon le cas:Contrairement à la réponse acceptée, cela conservera la mise en évidence de validation d'entrée, comme une bordure rouge en cas d'erreur.
Exemple d'utilisation de JSFiddle avec Bootstrap et Font Awesome
la source
float:left
à lainput-symbol
divinput-symbol
conteneurfloat
c'est mauvais donc j'utilisedisplay:inline-block
combiné avecvertical-align:bottom
maintenant :) Je ne peux pas faire de violon rapidement, il y a trop d'autres CSS dans mon exemple actuel ;-)Vous pouvez envelopper votre champ de saisie dans une étendue, que vous
position:relative;
. Ensuite, vous ajoutez avec:before
content:"€"
votre symbole monétaire et faites-leposition:absolute
. JSFiddle de travailHTML
CSS
Mettre à jour Si vous souhaitez mettre le symbole de l'euro à gauche ou à droite de la zone de texte. JSFiddle de travail
HTML
CSS
la source
Puisque vous ne pouvez pas faire
::before
avec descontent: '$'
entrées et que l'ajout d'un élément absolument positionné ajoute du html supplémentaire - j'aime faire un css en ligne SVG en arrière-plan.Ca fait plutot comme ca:
Il produit les éléments suivants:
Remarque: le code doit être sur une seule ligne. Le support est assez bon dans les navigateurs modernes, mais assurez-vous de tester.
la source
background-repeat: no-repeat;
car le $ se répétait dans la zone de saisie.background-image
peut ne pas être pris en charge, ou le navigateur peut rendre le widget lui-même au lieu d'utiliser les widgets fournis par le système.J'ai fini par avoir besoin que le type reste toujours sous forme de nombre, j'ai donc utilisé CSS pour pousser le signe dollar dans le champ de saisie en utilisant une position absolue.
la source
Placez le '$' devant le champ de saisie de texte, au lieu de l'intérieur. Cela rend la validation des données numériques beaucoup plus facile car vous n'avez pas à analyser le '$' après la soumission.
Vous pouvez, avec JQuery.validate () (ou autre), ajouter des règles de validation côté client qui gèrent la devise. Cela vous permettrait d'avoir le '$' dans le champ de saisie. Mais vous devez toujours faire une validation côté serveur pour la sécurité et cela vous remet dans la position de devoir supprimer le '$'.
la source
Voir aussi: Restreindre la saisie à la zone de texte: autoriser uniquement les nombres et le point décimal
la source
Si vous avez seulement besoin de prendre en charge Safari, vous pouvez le faire comme ceci:
et un champ de saisie comme
<input class="currency" data-symbol="€" type="number" value="12.9">
De cette façon, vous n'avez pas besoin d'une balise supplémentaire et conservez les informations du symbole dans le balisage.
la source
Une autre solution que je préfère est d'utiliser un élément d'entrée supplémentaire pour une image du symbole monétaire. Voici un exemple utilisant l'image d'une loupe dans un champ de texte de recherche:
html:
css:
Cela se traduit par l'entrée sur la barre latérale gauche ici:
https://fsfe.org
la source
Je viens d'utiliser: avant avec l'entrée et j'ai passé $ comme contenu
la source
Pour bootstrap ses travaux
N'utilisez pas class = "form-control" dans le champ de saisie.
la source
la source
Aucune de ces réponses n'aide vraiment si vous souhaitez aligner la bordure gauche avec d'autres champs de texte sur un formulaire de saisie.
Je recommanderais de positionner le signe dollar absolument à gauche environ -10px ou à gauche 5px (selon que vous le vouliez à l'intérieur ou à l'extérieur de la zone de saisie). La solution interne nécessite une direction: rtl sur le css d'entrée.
Vous pouvez également ajouter un remplissage à l'entrée pour éviter la direction: rtl, mais cela modifiera la largeur du conteneur d'entrée pour ne pas correspondre aux autres conteneurs de la même largeur.
ou
https://i.imgur.com/ajrU0T9.png
Exemple: https://plnkr.co/edit/yshyuRMd06K1cuN9tFDv?p=preview
la source
%
la source
Oui, si vous utilisez bootstrap, cela fonctionnerait.
et
la source
la source