मैं keydown
ईवेंट की प्रक्रिया में उपयोगकर्ता टेक्स्ट इनपुट के विरुद्ध जानकारी सत्यापन करने का प्रयास कर रहा हूं। कारण है कि मैं keydown
ईवेंट में मान्य करने का प्रयास कर रहा हूं क्योंकि मैं उन पात्रों को प्रदर्शित नहीं करना चाहता हूं जिन्हें शुरुआत में input
बॉक्स में अवैध माना जाता है।जावास्क्रिप्ट: कीडाउन घटना में इनपुट सत्यापन
सत्यापन मैं लिख रहा हूँ इस तरह है,
function validateUserInput(){
var code = this.event.keyCode;
if ((code<48||code>57) // numerical
&&code!==46 //delete
&&code!==8 //back space
&&code!==37 // <- arrow
&&code!==39) // -> arrow
{
this.event.preventDefault();
}
}
मैं हालांकि मैं इस कार्यान्वयन पर कमियां देख रहा हूँ, इस तरह जा रहा रख सकते हैं। वे हैं, उदाहरण के लिए:
- सशर्त बयान लंबे समय तक और लंबा हो गया जब मैंने जांच की और शर्तों को रखा।
keyCodes
ब्राउज़र द्वारा अलग-अलग हो सकते हैं।- मुझे केवल यह जांचना नहीं है कि कानूनी क्या है लेकिन यह भी जांचना है कि असाधारण क्या है। उपर्युक्त उदाहरणों में, , बैकस्पेस, और तीर कुंजी असाधारण हैं।
लेकिन जिस सुविधा को मैं खोना नहीं चाहता हूं वह textarea
में इनपुट प्रदर्शित नहीं कर रहा है जब तक कि यह सत्यापन पास न हो जाए। (यदि उपयोगकर्ता textarea
में अवैध वर्ण डालने का प्रयास करता है, तो कुछ भी दिखाई नहीं देना चाहिए) यही कारण है कि मैं keyup
ईवेंट पर सत्यापन नहीं कर रहा हूं।
तो मेरे सवाल है:
keyCode
keyCode
द्वारा जाँच की तुलना मेंkeydown
स्थिति में इनपुट को मान्य करने के बेहतर तरीके हैं?- ब्राउज़र प्रदर्शित करने से पहले
keydown
ईवेंट के अलावा उपयोगकर्ता इनपुट को कैप्चर करने के अन्य तरीके हैं? और उस पर सत्यापन लगाने का एक तरीका?
अग्रिम सहायता के लिए धन्यवाद।
हां, ऑनकीप्रेस अच्छी तरह से काम किया। आपका बहुत बहुत धन्यवाद! – c4il