Обнаружение клавиши ввода в текстовом поле ввода

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

Что я делаю неправильно?

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

Есть ли лучший способ сделать это, что бы сказать, если ввести нажатие на .input1 выполнить функцию?

Ответ 1

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


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

Ответ 2

event.key === "Enter"

Более свежая и более 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
    }
});

Mozilla Docs

Поддерживаемые браузеры

Ответ 3

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

Ответ 4

Попробуйте это, чтобы обнаружить клавишу Enter, нажатую в текстовом поле.

$(function(){

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

});

Ответ 5

Возможно, слишком поздно ответить на этот вопрос. Но следующий код просто предотвращает ввод ключа. Просто копировать и вставлять следует работать.

        <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 Key, единственное, что вам не нравится, это отправить форму:)

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

Ответ 7

Решение, которое работает для меня, заключается в следующем

$("#element").addEventListener("keyup", function(event) {
    if (event.key === "Enter") {
        // do something
    }
});

Ответ 8

Попробуйте это, чтобы обнаружить нажатие клавиши Enter в текстовом поле.

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

DEMO

Ответ 9

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

Ответ 10

$('.input1').keypress(function(event){
    var keycode = (event.keyCode ? event.keyCode : event.which);
    if(keycode == '13'){
        //do whatever you want on ENTER click
    }
});