Saya menggunakan atribut style berikut untuk mengatur input pengguna ke huruf besar sehingga ketika pengguna mulai mengetik di kotak teks misalnya railway
, maka itu harus diubah menjadi huruf kapital seperti RAILWAY
tanpa pengguna harus menekan tombol Caps-lock.
Ini adalah kode yang saya gunakan untuk input:
<input type = "text" class = "normal" name = "Name" size = "20" maxlength = "20"> <img src="../images/tickmark.gif" border="0" style='text-transform:uppercase'/>
Tapi saya tidak mendapatkan output yang diinginkan dengan menggunakan atribut ini.
Jawaban:
Anda telah meletakkan
style
atribut pada<img>
tag, alih-alih<input>
.Ini juga bukan ide yang baik untuk memiliki spasi antara nama atribut dan nilai ...
Harap dicatat transformasi ini murni visual, dan tidak mengubah teks yang dikirim dalam POST.
sumber
Saya pikir solusi paling kuat yang akan memastikan bahwa itu diposting dalam huruf besar adalah dengan menggunakan metode ininput seperti:
EDIT
Beberapa orang mengeluh bahwa kursor melompat ke ujung saat mengedit nilai, jadi versi yang sedikit diperluas ini harus menyelesaikannya
sumber
Jawaban dengan
text-transformation:uppercase
penataan tidak akan mengirim data yang lebih besar ke server saat dikirim - apa yang Anda harapkan. Anda dapat melakukan sesuatu seperti ini sebagai gantinya:Untuk input HTML Anda gunakan onkeydown:
Dalam JavaScript Anda:
Dengan
upperCaseF()
fungsi pada setiap tombol ditekan, nilai input akan berubah menjadi bentuk huruf besar.Saya juga menambahkan penundaan 1ms sehingga blok kode fungsi memicu setelah peristiwa keydown terjadi.
sumber
input
event bukankeydown
dan menyingkirkansetTimeout
solusi.input
elemen tampaknya bekerja dengan baik:oninput="this.value = this.value.toUpperCase()"
text-transform:uppercase
solusi gaya css di atas untuk membuat input selalu muncul sebagai huruf besarMasalah dengan jawaban pertama adalah bahwa placeholder akan menjadi huruf besar juga. Jika Anda HANYA ingin input huruf besar, gunakan solusi berikut.
Untuk memilih hanya elemen input yang tidak kosong, berikan atribut yang diperlukan pada elemen:
Sekarang, untuk memilihnya, gunakan
:valid
elemen pseudo:Dengan cara ini Anda hanya akan menggunakan huruf besar karakter yang dimasukkan.
sumber
mencoba
Alih-alih menempatkan tag gaya gambar pada input karena Anda menulis pada input bukan pada gambar
sumber
Setel gaya berikut untuk mengatur semua kotak teks menjadi huruf besar
sumber
Masalah dengan CSS Styling adalah bahwa itu tidak mengubah data, dan jika Anda tidak ingin memiliki fungsi JS maka coba ...
<input onkeyup="this.value = this.value.toUpperCase()" />
pada itu sendiri Anda akan melihat bidang memanfaatkan keyup, jadi mungkin diinginkan untuk menggabungkan ini dengan yang
style='text-transform:uppercase'
lain telah menyarankan.sumber
Menggunakan CSS
text-transform: uppercase
tidak mengubah input aktual tetapi hanya mengubah tampilannya. Jika Anda mengirim data input ke server masih akan huruf kecil atau Anda memasukkannya. Untuk benar-benar mengubah nilai input Anda perlu menambahkan kode javascript seperti di bawah ini:Di sini saya menggunakan
toLocaleUpperCase()
untuk mengubahinput
nilai menjadi huruf besar. Ini berfungsi dengan baik sampai Anda perlu mengedit apa yang Anda masukkan, misalnya jika Anda telah memasukkan ABCXYZ dan sekarang Anda mencoba mengubahnya menjadi ABCLMNXYZ, itu akan menjadi ABCLXYZMN karena setelah setiap input kursor melompat ke ujung.Untuk mengatasi lompatan kursor ini, kita harus membuat perubahan fungsi berikut:
Sekarang semuanya berfungsi seperti yang diharapkan, tetapi jika Anda memiliki PC lambat Anda mungkin melihat teks melompat dari huruf kecil ke huruf besar saat Anda mengetik. Jika ini mengganggu Anda, ini saatnya menggunakan CSS, melamar
input: {text-transform: uppercase;}
ke file CSS dan semuanya akan baik-baik saja.sumber
Ini akan menampilkan input dalam huruf besar dan mengirim data input melalui pos dalam huruf besar.
HTML
JavaScript
sumber
Seperti yang tidak disarankan oleh siapa pun:
Jika Anda ingin menggunakan solusi CSS dengan placeholder huruf kecil, Anda hanya perlu mendesain placeholder secara terpisah. Pisahkan 2 gaya placeholder untuk kompatibilitas IE.
sumber
Coba solusi di bawah ini, Ini juga akan berhati-hati ketika pengguna hanya memasukkan ruang kosong di bidang input pada indeks pertama.
sumber
sumber