Saya ingin memiliki kolom input teks yang berisi tanda "$" di awal, dan tidak peduli apa pengeditan yang terjadi pada kolom tersebut, agar tanda tersebut tetap ada.
Saya akan lebih baik jika hanya angka yang diterima untuk masukan, tapi itu hanya tambahan yang bagus.
Gunakan
.input-icon
div induk . Tambahkan secara opsional.input-icon-right
.Sejajarkan ikon secara vertikal dengan
transform
dantop
, dan aturpointer-events
kenone
sehingga klik fokus pada input. Sesuaikanpadding
danwidth
sesuai:Tidak seperti jawaban yang diterima, ini akan mempertahankan sorotan validasi input, seperti batas merah ketika ada kesalahan.
Contoh penggunaan JSFiddle dengan Bootstrap dan Font Awesome
sumber
float:left
keinput-symbol
divinput-symbol
wadahfloat
itu buruk jadi saya menggunakandisplay:inline-block
gabungan denganvertical-align:bottom
sekarang :) Saya tidak bisa dengan cepat membuat biola, ada terlalu banyak CSS lain yang masuk dalam contoh saya saat ini ;-)Anda dapat membungkus bidang masukan Anda menjadi suatu rentang, yang Anda inginkan
position:relative;
. Kemudian Anda menambahkan dengan:before
content:"€"
simbol mata uang Anda dan membuatnyaposition:absolute
. Bekerja JSFiddleHTML
CSS
Perbarui Jika Anda ingin meletakkan simbol euro baik di kiri atau kanan kotak teks. Bekerja JSFiddle
HTML
CSS
sumber
Karena Anda tidak dapat melakukan
::before
dengancontent: '$'
input dan menambahkan elemen yang benar-benar diposisikan menambahkan html ekstra - Saya suka lakukan pada latar belakang SVG inline css.Ini berjalan seperti ini:
Ini menghasilkan yang berikut:
Catatan: semua kode harus dalam satu baris. Dukungan cukup bagus di browser modern, tetapi pastikan untuk mengujinya.
sumber
background-repeat: no-repeat;
saat $ berulang di kotak input.background-image
mungkin tidak didukung, atau browser mungkin merender widget itu sendiri daripada menggunakan widget yang disediakan sistem.Saya akhirnya membutuhkan tipe untuk tetap menjadi angka, jadi menggunakan CSS untuk mendorong tanda dolar ke bidang input menggunakan posisi absolut.
sumber
Letakkan '$' di depan kolom input teks, bukan di dalamnya. Itu membuat validasi untuk data numerik jauh lebih mudah karena Anda tidak perlu mengurai '$' setelah mengirimkan.
Anda dapat, dengan JQuery.validate () (atau lainnya), menambahkan beberapa aturan validasi sisi klien yang menangani mata uang. Itu akan memungkinkan Anda untuk memiliki '$' di dalam kolom input. Tetapi Anda masih harus melakukan validasi sisi server untuk keamanan dan itu membuat Anda kembali ke posisi harus menghapus '$'.
sumber
Lihat juga: Membatasi input ke kotak teks: hanya mengizinkan angka dan titik desimal
sumber
Jika Anda hanya perlu mendukung Safari, Anda dapat melakukannya seperti ini:
dan bidang masukan seperti
<input class="currency" data-symbol="€" type="number" value="12.9">
Dengan cara ini Anda tidak memerlukan tag tambahan dan menyimpan informasi simbol di markup.
sumber
Solusi lain yang saya sukai adalah menggunakan elemen input tambahan untuk gambar simbol mata uang. Berikut adalah contoh penggunaan gambar kaca pembesar dalam bidang teks penelusuran:
html:
css:
Ini menghasilkan input di sidebar kiri di sini:
https://fsfe.org
sumber
Saya baru saja menggunakan: before dengan input dan mengirimkan $ sebagai konten
sumber
Untuk bootstrap kerjanya
Jangan gunakan class = "form-control" di kolom input.
sumber
sumber
Tak satu pun dari jawaban ini yang benar-benar membantu jika Anda ingin menyelaraskan batas kiri dengan bidang teks lain pada formulir masukan.
Saya akan merekomendasikan memposisikan tanda dolar secara mutlak ke kiri sekitar -10px atau kiri 5px (tergantung apakah Anda menginginkannya di dalam atau di luar kotak input). Solusi di dalam membutuhkan arah: rtl pada css masukan.
Anda juga dapat menambahkan padding ke masukan untuk menghindari arah: rtl, tetapi itu akan mengubah lebar wadah masukan agar tidak cocok dengan wadah lain dengan lebar yang sama.
atau
https://i.imgur.com/ajrU0T9.png
Contoh: https://plnkr.co/edit/yshyuRMd06K1cuN9tFDv?p=preview
sumber
%
sumber
Ya, jika Anda menggunakan bootstrap, ini akan berhasil.
dan
sumber
sumber