कहीं भी प्रवेश को अस्वीकार करें
यदि आपके पास <textarea>
अपना फॉर्म नहीं है, तो बस निम्नलिखित को अपने साथ जोड़ें <form>
:
<form ... onkeydown="return event.key != 'Enter';">
या jQuery के साथ:
$(document).on("keydown", "form", function(event) {
return event.key != "Enter";
});
यह कारण होगा कि फॉर्म के अंदर हर कुंजी प्रेस पर जाँच की जाएगी key
। यदि यह नहीं है Enter
, तो यह वापस आ जाएगा true
और हमेशा की तरह कुछ भी जारी रहेगा। यदि यह है Enter
, तो यह वापस आ जाएगा false
और कुछ भी तुरंत बंद हो जाएगा, इसलिए फॉर्म जमा नहीं किया जाएगा।
keydown
घटना से अधिक पसंद किया जाता है keyup
के रूप में keyup
ब्लॉक फार्म के लिए बहुत देर हो चुकी जमा करें। ऐतिहासिक रूप से वहाँ भी था keypress
, लेकिन यह है, जैसा कि है KeyboardEvent.keyCode
। आपको KeyboardEvent.key
इसके बजाय उपयोग करना चाहिए जो कुंजी दबाए जाने का नाम देता है। कबEnter
जाँच की जाती है, तो यह 13 (सामान्य प्रवेश) के साथ-साथ 108 (संख्या दर्ज) की जाँच करेगा।
ध्यान दें कि $(window)
कुछ अन्य उत्तर में सुझाव के बजाय के रूप में $(document)
नहीं काम करने के लिए करता है keydown
/ keyup
अगर आप साथ ही उन गरीब उपयोगकर्ताओं को कवर करने की तरह कर रहे हैं, आईई <= 8 में इतना है कि नहीं की एक अच्छा विकल्प।
केवल Textareas पर कुंजी दर्ज करने की अनुमति दें
यदि आपके पास <textarea>
आपके फॉर्म में है (जो कि निश्चित रूप से एंटर कुंजी को स्वीकार करना चाहिए ), तो कीडाउन हैंडलर को प्रत्येक व्यक्तिगत इनपुट तत्व में जोड़ें <textarea>
।
<input ... onkeydown="return event.key != 'Enter';">
<select ... onkeydown="return event.key != 'Enter';">
...
बॉयलरप्लेट को कम करने के लिए, यह jQuery के साथ किया जाना बेहतर है:
$(document).on("keydown", ":input:not(textarea)", function(event) {
return event.key != "Enter";
});
यदि आपके पास उन इनपुट तत्वों पर अन्य ईवेंट हैंडलर फ़ंक्शन जुड़े हुए हैं, जिन्हें आप किसी कारण से दर्ज करना चाहते हैं, तो केवल झूठे लौटने के बजाय ईवेंट के डिफ़ॉल्ट व्यवहार को रोकें, इसलिए यह अन्य हैंडलर को ठीक से प्रचारित कर सकता है।
$(document).on("keydown", ":input:not(textarea)", function(event) {
if (event.key == "Enter") {
event.preventDefault();
}
});
Textareas पर कुंजी दर्ज करने दें और केवल बटन सबमिट करें
यदि आप सबमिट बटन पर <input|button type="submit">
भी दर्ज करना चाहते हैं, तो आप नीचे दिए गए चयनकर्ता को हमेशा परिष्कृत कर सकते हैं।
$(document).on("keydown", ":input:not(textarea):not(:submit)", function(event) {
// ...
});
ध्यान दें कि input[type=text]
जैसा कि कुछ अन्य उत्तरों में सुझाया गया है, उन HTML5 गैर-पाठ इनपुटों को कवर नहीं करता है, इसलिए यह एक अच्छा चयनकर्ता नहीं है।