2011-09-20 15 views
26

संभव डुप्लिकेट:
How to catch enter keypress on textarea but not shift+enter?मैं जावास्क्रिप्ट में Shift + key को कैसे ढूंढ सकता हूं?

मैं shift + जावास्क्रिप्ट में नीचे कुंजी कैसे पता लगा सकते हैं?

+7

आप उन अतिरिक्त शब्दों का उपयोग कर सकते थे जो आपने पहले ही कोशिश की है। यह आपके प्रश्न का उत्तर देता है: http://stackoverflow.com/questions/6178431/how-to-catch-enter-keypress-on-textarea-but-not-shiftenter – Pablo

+2

ओह ठीक है ... इसके लिए क्या लायक है : http://jsfiddle.net/3M6Xt/ –

+0

@ रॉकिंथेसिक्सस्ट्रिंग एह, यह ठीक है। जवाब मूल रूप से वहां है: पी –

उत्तर

30
var onkeydown = (function (ev) { 
    var key; 
    var isShift; 
    if (window.event) { 
    key = window.event.keyCode; 
    isShift = !!window.event.shiftKey; // typecast to boolean 
    } else { 
    key = ev.which; 
    isShift = !!ev.shiftKey; 
    } 
    if (isShift) { 
    switch (key) { 
     case 16: // ignore shift key 
     break; 
     default: 
     alert(key); 
     // do stuff here? 
     break; 
    } 
    } 
}); 
+2

कोई आश्चर्य नहीं कि लोग इसके लिए jQuery का उपयोग करते हैं। मैन, यह बहुत कोड है। –

+0

इस सभी कोड की आवश्यकता नहीं है (अब और)। कृपया दूसरा जवाब देखें। –

101

event.shiftKey एक बूलियन है। true यदि Shift कुंजी दबाया जा रहा है, तो false यदि नहीं है। altKey और ctrlKey वही काम करते हैं।

तो मूल रूप से आपको केवल onkeydown के साथ सामान्य के रूप में कीडाउन का पता लगाने की आवश्यकता है, और आवश्यकतानुसार उन गुणों की जांच करें।

+11

मुझे लगता है कि यह चयनित उत्तर की तुलना में अधिक जानकारीपूर्ण है, क्योंकि यह वास्तव में उचित कार्यक्षमता के व्यवहार का वर्णन करता है, जबकि ओए यह सुनिश्चित करने के लिए ब्राउज़र कार्यक्षमता का एक गुच्छा प्रस्तुत करता है कि यह कार्यक्षमता काम करती है। – hoffmanc

संबंधित मुद्दे