jquery - किसी फ़ंक्शन को ट्रिगर करने के लिए टेक्स्टबॉक्स में एंटर कुंजी कैसे प्राप्त करें, न कि पहला/डिफ़ॉल्ट बटन




button textbox (3)

मैं किसी फ़ंक्शन को ट्रिगर करने के लिए एंटर कुंजी प्राप्त करने का प्रयास कर रहा हूं, जब किसी निश्चित टेक्स्टबॉक्स के अंदर दबाया जाता है, और पहले या डिफ़ॉल्ट बटन को ट्रिगर नहीं करता है।

आप यहां क्या हो रहा है इसका एक उदाहरण देख सकते हैं: http://jsfiddle.net/cutsomeat/WZ6TM/1/

यदि आप अन्य कुंजियां दबाते हैं तो आपको कुंजीकोड के साथ एक अलर्ट बॉक्स मिलेगा, फिर भी यदि आप एंटर कुंजी दबाते हैं तो आपको कुंजीकोड के साथ अलर्ट बॉक्स नहीं मिलेगा, बल्कि बटन के भीतर अलर्ट बॉक्स पर क्लिक करें।

स्पष्ट रूप से एंटर कुंजी बटन ट्रिगर है। क्या इससे बचने का कोई तरीका है और इसके बजाय, कुंजीपटल ईवेंट में एंटर कुंजी कैप्चर करें, फिर कोई अन्य फ़ंक्शन ट्रिगर करें?


इसे इस्तेमाल करे:

$('#myText').live("keypress", function(e) {
        if (e.keyCode == 13) {
            alert("Enter pressed");
            return false; // prevent the button click from happening
        }
});

Demo


बटन की डिफ़ॉल्ट कार्रवाई से बचने के लिए e.preventDefault() करें:

$('#myText').keydown(function(e) {
    if (e.keyCode == 13) {
        e.preventDefault();
    }
    alert(e.keyCode);
});

$(document).ready(function() {

    $('#myText').keypress(function(e) {
        if ( e.keyCode == 13 ) {  // detect the enter key
            $('#myButton').click(); // fire a sample click,  you can do anything
        }
    });

    $('#myButton').click(function(e) {
        alert('Button click activated!');
    });

});

DEMO

लाइव तत्वों के लिए .on() नीचे उपयोग करें:

$(document).ready(function() {

    $(document).on('keypress', '#myText', function(e) {

        if ( e.keyCode == 13 ) {  // detect the enter key
            $('#myButton').click(); // fire a sample click,  you can do anything
        }
    });

    $(document).on('click', '#myButton', function(e) {
        alert('Button click activated!');
    });

});




enter