CSS kullanmak text-transform: uppercasegerçek girdiyi değiştirmez, yalnızca görünümünü değiştirir. Giriş verilerini bir sunucuya gönderirseniz, yine de küçük harfe veya nasıl girerseniz girin. Girdi değerini gerçekten dönüştürmek için aşağıdaki gibi javascript kodu eklemeniz gerekir:
document.querySelector("input").addEventListener("input", function(event) {
event.target.value = event.target.value.toLocaleUpperCase()
})
<input>
Burada değeri büyük harfe toLocaleUpperCase()dönüştürmek inputiçin kullanıyorum . Girdiklerinizi düzenlemeniz gerekene kadar sorunsuz çalışır, örneğin ABCXYZ girdiyseniz ve şimdi onu ABCLMNXYZ olarak değiştirmeye çalışırsanız, ABCLXYZMN olur çünkü her girişten sonra imleç sona atlar.
İmlecin bu atlamasının üstesinden gelmek için, fonksiyonumuzda aşağıdaki değişiklikleri yapmalıyız:
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>
Artık her şey beklendiği gibi çalışıyor, ancak yavaş PC'niz varsa, yazarken küçük harften büyük harfe atlanan metni görebilirsiniz. Bu sizi rahatsız ediyorsa, şimdi CSS kullanma, input: {text-transform: uppercase;}CSS dosyasına uygulama zamanı ve her şey yoluna girecek.