में Shiftkey दबाया गया है मैंने एक जेएस फ़ंक्शन लिखा है जो केवल संख्याओं को दर्ज करने की अनुमति देता है। कि समारोह की एक प्रति नीचे है:क्या जावास्क्रिप्ट
function NumbersOnly(e) {
var evt = e || window.event;
if (evt) {
var keyCode = evt.charCode || evt.keyCode;
//Allow tab, backspace and numbers to be pressed, otherwise return false for everything.
//(keyCode>=96 && keyCode<=105) are the numpad numbers
if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 96 && keyCode <= 105) || keyCode === 9 || keyCode === 8) {
}
else {
evt.returnValue = false;
}
}
}
इस समारोह सभी नंबरों के साथ ठीक काम करता है, लेकिन जब पारी कुंजी के दबे और नंबर कुंजियों में से एक दबाया जाता है मेरी समस्या होता है। लौटाया गया मूल्य संख्याओं के ऊपर वर्णों में से एक है। तो उदाहरण के लिए यदि मैं शिफ्ट दबाता हूं और 7 दबाता हूं, '&' वापस कर दिया जाता है लेकिन कुंजीकोड अभी भी 55 है !! मैं उम्मीद करता था कि अलग होना चाहिए।
तो मेरा सवाल यह है कि मैं कैसे जांचूं कि शिफ्ट कुंजी को दबाया जा रहा है या नहीं। मैं निम्नलिखित की जांच की कोशिश की है, लेकिन यह काम नहीं किया:
if (keyCode === 16) {
evt.returnValue = false;
}
else {
if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 96 && keyCode <= 105) || keyCode === 9 || keyCode === 8) {
}
else {
evt.returnValue = false;
}
}
मैं ASP.NET 4.0 उपयोग कर रहा हूँ।
किसी भी मदद की सराहना की जाएगी।
अग्रिम धन्यवाद।
आप console.log में evt दे, तो आप shiftKey विशेषता देखेंगे, अगर shift कुंजी दबाया जाता है, यह सच –