jquery - w3schools - 如何在文本框中獲取Enter鍵以觸發函數而不是第一個/默認按鈕




w3c wizard (3)

使用.on()作為.live()已被deprecated

$(document).on("keypress", ".myText", function(e) {
     if (e.which == 13) {
         //do some stuff
     }
});

我試圖讓Enter鍵在某個文本框內按下時觸發一個函數,而不是觸發第一個或默認按鈕。

你可以在這裡看到一個例子: http://jsfiddle.net/cutsomeat/WZ6TM/1/http://jsfiddle.net/cutsomeat/WZ6TM/1/

如果按其他鍵,您將收到一個帶有鍵碼的警告框,但是如果您按下Enter鍵,您將無法獲得帶有鍵碼的警告框,而是按鈕點擊事件中的警告框。

顯然,Enter鍵是觸發按鈕。 有沒有辦法避免這種情況,而是在keyup事件中捕獲Enter鍵,然後觸發另一個函數?


嘗試這個:

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

Demo


$(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