Я бы хотел иметь поле ввода текста, содержащее знак «$» в самом начале, и независимо от того, какое редактирование происходит с полем, чтобы знак был постоянным.
Было бы хорошо, если бы на ввод принимались только числа, но это просто модное дополнение.
Используйте родительский
.input-icon
div. При желании добавить.input-icon-right
.Совместите значок вертикально
transform
иtop
, и наборpointer-events
дляnone
так , что щелчки сосредоточиться на входе. При необходимости отрегулируйтеpadding
иwidth
:В отличие от принятого ответа, при этом будет сохранена подсветка проверки ввода, например красная рамка в случае ошибки.
Пример использования JSFiddle с Bootstrap и Font Awesome
источник
float:left
вinput-symbol
divinput-symbol
контейнераfloat
это плохо, поэтому я используюdisplay:inline-block
комбинированный сvertical-align:bottom
now :) Я не могу быстро сделать скрипку, в моем текущем примере слишком много другого CSS ;-)Вы можете обернуть свое поле ввода в диапазон, который вы
position:relative;
. Затем вы добавляете:before
content:"€"
символ валюты и делаете этоposition:absolute
. Рабочий JSFiddleHTML
CSS
Обновить Если вы хотите поместить символ евро слева или справа от текстового поля. Рабочий JSFiddle
HTML
CSS
источник
Так как вы не можете сделать
::before
сcontent: '$'
на входах и добавление абсолютно позиционированный элемент добавляет дополнительную HTML - мне нравится делать на фоне SVG инлайн CSS.Это выглядит примерно так:
Он выводит следующее:
Примечание: весь код должен быть в одной строке. Поддержка в современных браузерах неплохая, но обязательно протестируйте.
источник
background-repeat: no-repeat;
поскольку $ повторял в поле ввода.background-image
могут не поддерживаться, или браузер может отображать сам виджет вместо использования предоставляемых системой виджетов.В итоге мне понадобилось, чтобы тип оставался числом, поэтому использовал CSS, чтобы вставить знак доллара в поле ввода, используя абсолютную позицию.
источник
Поместите '$' перед полем ввода текста, а не внутри него. Это значительно упрощает проверку числовых данных, потому что вам не нужно разбирать символ «$» после отправки.
Вы можете с помощью JQuery.validate () (или другого) добавить некоторые правила проверки на стороне клиента, которые обрабатывают валюту. Это позволит вам иметь символ «$» внутри поля ввода. Но вам все равно придется выполнять проверку безопасности на стороне сервера, и это снова возвращает вас к ситуации, когда вам нужно удалить символ «$».
источник
См. Также: Ограничение ввода текстовым полем: разрешены только числа и десятичная точка
источник
Если вам нужна только поддержка Safari, вы можете сделать это так:
и поле ввода вроде
<input class="currency" data-symbol="€" type="number" value="12.9">
Таким образом, вам не понадобится дополнительный тег и сохраните информацию о символах в разметке.
источник
Другое решение, которое я предпочитаю, - использовать дополнительный элемент ввода для изображения символа валюты. Вот пример использования изображения увеличительного стекла в текстовом поле поиска:
html:
css:
Это приводит к вводу здесь на левой боковой панели:
https://fsfe.org
источник
Я просто использовал: before с вводом и передал $ в качестве содержимого
источник
Для начальной загрузки это работает
Не используйте class = "form-control" в поле ввода.
источник
источник
Ни один из этих ответов не поможет, если вы хотите выровнять левую границу с другими текстовыми полями в форме ввода.
Я бы рекомендовал расположить знак доллара абсолютно слева примерно на -10 пикселей или влево на 5 пикселей (в зависимости от того, хотите ли вы, чтобы он был внутри или вне поля ввода). Внутреннее решение требует direction: rtl на входе css.
Вы также можете добавить к входу отступы, чтобы избежать направления: rtl, но это изменит ширину входного контейнера, чтобы не совпадать с другими контейнерами той же ширины.
или
https://i.imgur.com/ajrU0T9.png
Пример: https://plnkr.co/edit/yshyuRMd06K1cuN9tFDv?p=preview
источник
%
источник
Да, если вы используете бутстрап, это сработает.
и
источник
источник