मैंने पहली बार jQuery का उपयोग करके इसे हल करने की कोशिश की थी, लेकिन मैं वास्तव में अनचाहे वर्णों (गैर-अंकों) के बारे में खुश नहीं था, जो वास्तव में कीप पर हटाए जाने से पहले इनपुट क्षेत्र में दिखाई देता है।
अन्य समाधानों की तलाश में मैं यह पाया:
पूर्णांक (गैर-नकारात्मक)
<script>
function numbersOnly(oToCheckField, oKeyEvent) {
return oKeyEvent.charCode === 0 ||
/\d/.test(String.fromCharCode(oKeyEvent.charCode));
}
</script>
<form name="myForm">
<p>Enter numbers only: <input type="text" name="myInput"
onkeypress="return numbersOnly(this, event);"
onpaste="return false;" /></p>
</form>
स्रोत: https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onkeypress#Example
लाइव उदाहरण: http://jsfiddle.net/u8sZq/
दशमलव अंक (गैर-नकारात्मक)
एकल दशमलव बिंदु को अनुमति देने के लिए आप कुछ इस तरह कर सकते हैं:
<script>
function numbersOnly(oToCheckField, oKeyEvent) {
var s = String.fromCharCode(oKeyEvent.charCode);
var containsDecimalPoint = /\./.test(oToCheckField.value);
return oKeyEvent.charCode === 0 || /\d/.test(s) ||
/\./.test(s) && !containsDecimalPoint;
}
</script>
स्रोत: बस यह लिखा है काम करने लगता है। लाइव उदाहरण: http://jsfiddle.net/tjBsF/
अन्य अनुकूलन
- अधिक प्रतीकों को टाइप करने की अनुमति देने के लिए केवल उन लोगों को नियमित अभिव्यक्ति में जोड़ें जो मूल चार कोड फ़िल्टर के रूप में कार्य कर रहे हैं।
- सरल संदर्भ प्रतिबंधों को लागू करने के लिए, इनपुट फ़ील्ड की वर्तमान सामग्री (स्थिति) (oToCheckField.value) को देखें
कुछ चीजें जिन्हें करने में आपकी रुचि हो सकती है:
- केवल एक दशमलव बिंदु की अनुमति है
- स्ट्रिंग की शुरुआत में तैनात होने पर ही माइनस साइन की अनुमति दें। यह नकारात्मक संख्या के लिए अनुमति देगा।
कमियों
- कार्य की स्थिति फ़ंक्शन के अंदर उपलब्ध नहीं है। इसने आपके द्वारा लागू किए जा सकने वाले प्रासंगिक प्रतिबंधों को बहुत कम कर दिया (उदाहरण के लिए कोई दो समान लगातार प्रतीक)। निश्चित नहीं है कि इसे एक्सेस करने का सबसे अच्छा तरीका क्या है।
मुझे पता है कि शीर्षक jQuery समाधान के लिए पूछता है, लेकिन उम्मीद है कि किसी को भी यह उपयोगी मिलेगा।