मैं आधुनिकीकरण/अनुकूलन पहल के हिस्से के रूप में मौजूदा कोडबेस से jQuery को अलग करने की कोशिश कर रहा हूं। ऐसे कुछ स्थान हैं जहां कुछ होने की आवश्यकता होती है जब कोई उपयोगकर्ता टेक्स्ट इनपुट में enter कुंजी दबाता है। पहले, हमने इसे निम्नलिखित के साथ पूरा किया:

$("#loginInput").on("keypress", e => {
   if (e.which == 13) {
     // if key pressed was enter...
     login();
   }
});

हालांकि, कीबोर्ड इवेंट एपीआई यहां पढ़कर मैंने पाया गया कि आमतौर पर उपयोग किए जाने वाले अधिकांश एपीआई बहिष्कृत हैं, जैसे KeyboardEvent.which और KeyboardEvent.keyCode

हालांकि ये गुण अभी भी अधिकांश ब्राउज़रों में उपलब्ध हैं, मैं बहिष्कृत एपीआई का उपयोग करने में असहज महसूस करता हूं। इसके बजाय मुझे क्या उपयोग करना चाहिए?

4
db2 14 मई 2019, 20:52

1 उत्तर

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

मुझे लगता है कि आप event.key चाहते हैं। ऐसा लगता है कि व्यापक रूप से समर्थित है।

"कुंजी" संपत्ति कीबोर्ड के साथ उपयोगकर्ता के इंटरैक्शन से परिलक्षित चरित्र देता है, इसमें शामिल सभी मेटा कुंजी (शिफ्ट, ctrl, आदि) को ध्यान में रखते हुए।

तो कैरिज रिटर्न कैरेक्टर (13) की जांच के लिए, आप उपयोग करेंगे

if (event.key === "Enter") {
  // enter key was pressed
}

संपादित करें कुछ आश्चर्यजनक तथ्य को प्रतिबिंबित करने के लिए अपडेट किया गया है कि "कुंजी" संपत्ति "एंटर" स्ट्रिंग पर सेट होती है जब वह कुंजी घटना को ट्रिगर करती है।

4
Pointy 15 मई 2019, 11:39