मैंने तीन दिनों से अधिक समय तक समाधान खोजा। मुझे एक स्टैक उत्तर मिला Stack Ans और उसका JSFiddle JSFiddle जो डेस्कटॉप के लिए 100% काम कर रहा है और 99% मोबाइल संस्करण के लिए काम कर रहा है। नमूना कोड:

<input type="text" class="numeric" />
$('.numeric').on('input', function (event) { 
   this.value = this.value.replace(/[^0-9]/g, '');
});

मोबाइल में jsfiddle लिंक देखें और अपने लिए इसका परीक्षण करें, टेस्ट केस: 12345 के रूप में इनपुट मान प्रदान करें, फिर spacebar twice इसे removes 5 दबाएं, अगली दो बार स्पेस की removes 4। इसे कैसे हल करें?

नीचे दिया गया कोड डेस्कटॉप ब्राउज़र में काम करता है न कि मोबाइल ब्राउज़र में क्योंकि कुंजी कोड पहचाना नहीं जाता है।

$(".numeric").on("keypress", function (event) {
   if ((event.which < 48 || event.which > 57)) event.preventDefault();
});

टेस्ट वीडियो लॉग: वीडियो लॉग बग रिपोर्ट

0
Pranesh Janarthanan 25 फरवरी 2019, 15:36

1 उत्तर

सबसे बढ़िया उत्तर

मुझे अपनी समस्या का समाधान मिल गया है,

$('.NumOnly').on('input', function (event) {
if (this.value.indexOf(' ') < 0) {
    this.value = this.value.trim().replace(/[^0-9]/g, '');
    if (!CheckLength(event.target.maxLength, $("#" + event.target.id).val())) {
        event.returnValue = false;
        return false;
    }
}
else this.value = this.value.trim();
});

मैं जांचता हूं कि इनपुट मान में indexOf(' ') का उपयोग करके स्थान है। यदि परिणाम> = 0 है तो trim() मान, अन्यथा replace नियमित अभिव्यक्ति आधारित सत्यापन का उपयोग कर रहा है।

0
Pranesh Janarthanan 23 अप्रैल 2019, 15:07