Menggunakan CSS text-transform: uppercasetidak 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:
document.querySelector("input").addEventListener("input", function(event) {
event.target.value = event.target.value.toLocaleUpperCase()
})
<input>
Di sini saya menggunakan toLocaleUpperCase()untuk mengubah inputnilai 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:
document.querySelector("input").addEventListener("input", function(event) {
var input = event.target;
var start = input.selectionStart;
var end = input.selectionEnd;
input.value = input.value.toLocaleUpperCase();
input.setSelectionRange(start, end);
})
<input>
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.