पाठ इनपुट फ़ील्ड में Enter कुंजी का पता लगाएं


299

यदि विशिष्ट इनपुट पर प्रवेश किया जाता है, तो मैं एक फ़ंक्शन करने की कोशिश कर रहा हूं।

मैं क्या गलत कर रहा हूँ?

$(document).keyup(function (e) {
    if ($(".input1").is(":focus") && (e.keyCode == 13)) {
        // Do something
    }
});

क्या ऐसा करने का एक बेहतर तरीका है, जो यह कहेगा कि .input1क्या कार्य करने के लिए दबाया गया है?


जवाबों:


499
$(".input1").on('keyup', function (e) {
    if (e.keyCode === 13) {
        // Do something
    }
});


//keyup not compatible with Jquery select(), Keydown is.

आप किस ब्राउज़र में इसका परीक्षण कर रहे थे? मुझे लगता है कि IE के पुराने संस्करण दस्तावेज़ पर कीप इवेंट को ट्रिगर नहीं करते (हालांकि इस बारे में निश्चित नहीं है)।
जोसेफ सिल्बर

2
आपका कोड काम नहीं कर रहा था क्योंकि आपने .is () का उपयोग किया था और === के बजाय === की आवश्यकता थी। कुछ और विवरणों के लिए मेरा उत्तर देखें।
wesbos

6
@jQuerybeast इसकी आवश्यकता नहीं है , और event.keyCodeयह एक है Number, इसलिए जावास्क्रिप्ट उसी के साथ ==या इसके साथ कदम उठाएगा ===
एलेक्स

7
e.which को अधिक उपयोगी क्रॉस ब्राउज़रों के रूप में घोषित किया गया है
शनि

2
गुण which, code, charCodeऔर keyCodeअब मान्य नहीं है developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent , आपका जवाब करने के लिए वास्तविक जानकारी जोड़ें।
सासे

120

event.key === "दर्ज करें"

हाल ही में और अधिक क्लीनर: का उपयोग करें event.keyकोई और अधिक मनमानी संख्या कोड!

const node = document.getElementsByClassName(".input")[0];
node.addEventListener("keyup", function(event) {
    if (event.key === "Enter") {
        // Do work
    }
});

यदि आपको jQuery का उपयोग करना चाहिए:

$(document).keyup(function(event) {
    if ($(".input1").is(":focus") && event.key == "Enter") {
        // Do work
    }
});

मोज़िला डॉक्स

ब्राउज़रों का समर्थन किया


6
सादे जावास्क्रिप्ट संस्करण के लिए यश, सुनिश्चित नहीं हैं कि क्यों अन्य सभी jquery में हैं
कप्तान शानदार

7
क्योंकि, ओपी ने अपना उदाहरण कोड jQuery में डाल दिया है और (साथ ही जावास्क्रिप्ट) jQuery को टैग किया गया है।
टाइगरक्र्र

44
$(document).keyup(function (e) {
    if ($(".input1:focus") && (e.keyCode === 13)) {
       alert('ya!')
    }
 });

या केवल इनपुट के लिए बाध्य करें

$('.input1').keyup(function (e) {
    if (e.keyCode === 13) {
       alert('ya!')
    }
  });

यह जानने के लिए कि आपको किस कीकोड की जरूरत है, वेबसाइट http://keycode.info का उपयोग करें


धन्यवाद। मैंने कुछ नया सीखा है। वैसे मैंने .is () का उपयोग कई बार किया है इसलिए यह तर्क नहीं है, काम करने के लिए नहीं है। इसके अलावा ==, फिर से मैंने अन्य स्थितियों के लिए दो == का उपयोग किया
jQuerybeast

np, आपको हमेशा ===
wesbos

12

Enterएक टेक्स्टबॉक्स में दबाए गए कुंजी का पता लगाने के लिए यह प्रयास करें ।

$(function(){

$(".input1").keyup(function (e) {
    if (e.which == 13) {
        // Enter key pressed
    }
 });

});

6

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

        <script type="text/javascript"> 
        function stopRKey(evt) { 
          var evt = (evt) ? evt : ((event) ? event : null); 
          var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
          if ((evt.keyCode == 13) && (node.type=="text"))  {return false;} 
        } 

        document.onkeypress = stopRKey; 

        </script>

6

सबसे अच्छा तरीका मुझे मिल रहा है keydown( का उपयोग कर रहा हैkeyup मेरे लिए अच्छा काम नहीं करता है)।

नोट: मैंने फॉर्म सबमिट को भी अक्षम कर दिया है क्योंकि आमतौर पर जब आप कुछ क्रियाओं को करना पसंद करते हैं, तो Enter कुंजी दबाएं केवल यह सोचें कि आपको पसंद नहीं है फॉर्म सबमिट करना है :)

$('input').keydown( function( event ) {
    if ( event.which === 13 ) {
        // Do something
        // Disable sending the related form
        event.preventDefault();
        return false;
    }
});

event.keyCode को हटा दिया गया घटना है। जो नहीं है, इसलिए यह बेहतर है
एलेक्स


1

पाठ बॉक्स में दर्ज की गई कुंजी का पता लगाने के लिए यह प्रयास करें।

$(document).on("keypress", "input", function(e){
    if(e.which == 13){
        alert("Enter key pressed");
    }
});

डेमो


0
 $(document).ready(function () {
        $(".input1").keyup(function (e) {
            if (e.keyCode == 13) {
                // Do something
            }
        });
    });

0

इस कोड ने पूरी साइट में मेरे लिए हर इनपुट को संभाला। यह INPUT फ़ील्ड के अंदर ENTER कुंजी की जाँच करता है और TEXTAREA या अन्य स्थानों पर नहीं रुकता है।

$(document).on("keydown", "input", function(e){
 if(e.which == 13){
  event.preventDefault();
  return false;
 }
});
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.