Onkeydown
, मैं जावास्क्रिप्ट निम्नलिखित चलाएँ:कैसे इनपुट में टाइप किया जा रहा से अमान्य वर्ण को रोकने के लिए फ़ील्ड
function ThisOnKeyDown(el) {
if (el.title == 'textonly') {
!(/^[A-Za-zÑñ-\s]*$/i).test(el.value) ? el.value = el.value.replace(/[^A-Za-zÑñ-\s]/ig, '') : null;
}
if (el.title == 'numbersonly') {
!(/^[0-9]*$/i).test(el.value) ? el.value = el.value.replace(/[^0-9]/ig, '') : null;
}
if (el.title == 'textandnumbers') {
!(/^[A-Za-zÑñ0-9-\s]*$/i).test(el.value) ? el.value = el.value.replace(/[^A-Za-zÑñ0-9-\s]/ig, '') : null;
}
}
इन तीन शीर्षक से एक विशेषताओं पृष्ठ पर विभिन्न इनपुट क्षेत्रों के लिए दिया जाता है। कोड अब तक काम करता है क्योंकि अमान्य वर्ण सही ढंग से मिटा दिए जाते हैं, लेकिन जब तक अगला वर्ण दर्ज नहीं किया जाता है। मैं पहले स्थान पर अमान्य इनपुट को अस्वीकार करने का एक तरीका ढूंढना चाहता हूं। तुम्हारी सहायता सराहनीय है!
संपादित करें: मैं वैश्विक स्तर पर घटनाएं बना रहा हूं। यहां बताया गया है मैं ऐसा:
<input id="AppFirstName" style="width: 150px;" type="text" maxlength="30" title="textonly"/>
इस फ़ंक्शन को 'ऑनकेप्रेस' और 'ऑनकेप' – sll
दोनों में जोड़ें, बस याद रखें कि इस प्रकार की सत्यापन पर्याप्त नहीं है और आपने हमेशा इस वर्ण सर्वर-साइड को हटा दिया है। –
@ एसएल, ऑनकीप में जोड़ने से बैकस्पेस दिखने वाला प्रभाव मिलता है। (ऑनकीप्रेस वही करता है)। मैं जो करना चाहता हूं वह इनपुट को कभी भी प्रकट होने से इंकार कर देता है। – Mike