CSS का उपयोग text-transform: uppercaseकरने से वास्तविक इनपुट में बदलाव नहीं होता है बल्कि केवल इसका लुक बदल जाता है। यदि आप किसी सर्वर को इनपुट डेटा भेजते हैं तो यह अभी भी कम होता जा रहा है या फिर आपने इसे दर्ज किया है। नीचे दिए गए जावास्क्रिप्ट कोड को जोड़ने के लिए वास्तव में इनपुट मूल्य को बदलने के लिए:
document.querySelector("input").addEventListener("input", function(event) {
event.target.value = event.target.value.toLocaleUpperCase()
})
<input>
यहाँ मैं toLocaleUpperCase()कन्वर्ट करने के लिए उपयोग कर रहा हूँinput मूल्य को अपरकेस में । यह तब तक ठीक काम करता है जब तक कि आपने जो दर्ज किया था, उसे संपादित करने की आवश्यकता है, जैसे कि अगर आपने ABCXYZ में प्रवेश किया था और अब आप इसे ABCLMNXYZ में बदलने का प्रयास करते हैं, तो यह ABCLXYZMN हो जाएगा क्योंकि हर इनपुट के बाद कर्सर अंत में कूदता है।
कर्सर की इस उछाल को दूर करने के लिए, हमें अपने कार्य में निम्नलिखित परिवर्तन करने होंगे:
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>
अब सब कुछ उम्मीद के मुताबिक काम करता है, लेकिन अगर आपके पास पीसी धीमा है, तो आप पाठ को नीचे से ऊपर की ओर छलांग लगाते हुए देख सकते हैं। यदि यह आपको परेशान करता है, तो यह सीएसएस का उपयोग करने का समय है, input: {text-transform: uppercase;}सीएसएस फ़ाइल पर लागू होता है और सब कुछ ठीक हो जाएगा।