Подтвердить что ты не робот

Как получить клавишу Enter в текстовом поле для запуска функции, а не первой/стандартной кнопки

Я пытаюсь получить ключ Enter, чтобы вызвать функцию, когда она нажата, когда внутри определенного текстового поля, а не запускать первую или по умолчанию кнопку.

Вы можете увидеть пример того, что здесь происходит: http://jsfiddle.net/cutsomeat/WZ6TM/1/

Если вы нажмете другие клавиши, вы получите окно с кодом ключа, но если вы нажмете клавишу Enter, вы не получите окно с кодом ключа, а скорее поле предупреждения в событии нажатия кнопки.

Очевидно, клавиша Enter вызывает кнопку. Есть ли способ избежать этого и вместо этого захватить клавишу Enter в событии keyup, затем запустить другую функцию?

4b9b3361

Ответ 1

Попробуйте следующее:

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

Демо

Ответ 2

Используйте .on(), поскольку .live() был устарел.

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

Ответ 3

Сделайте e.preventDefault() в keyDown, чтобы избежать действия по умолчанию кнопки:

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

Ответ 4

$(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!');
    });

});