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

Как определить, когда пользователь нажимает Enter в поле ввода

У меня только 1 поле ввода, и я хочу зарегистрировать onChange и onKeyPress событие, чтобы определить, когда пользователи закончат ввод или нажмите клавишу Enter. Мне нужно использовать только javascript. Спасибо за помощь.

У меня есть:

var load = function (){
   //I want to trigger this function when user hit Enter key.
}

document.getElementById('co').onchange=load;   //works great
document.getElementById('co').onKeyPress=load; 
//not sure how to detect when user press Enter

HTML

//no form just a single input field
<input type='text' id='co'>
4b9b3361

Ответ 1

document.getElementById('foo').onkeypress = function(e){
    if (!e) e = window.event;
    var keyCode = e.keyCode || e.which;
    if (keyCode == '13'){
      // Enter pressed
      return false;
    }
  }

DEMO

Ответ 2

Чтобы перевернуть браузер:

document.getElementById('foo').onkeypress = function(e) {
    var event = e || window.event;
    var charCode = event.which || event.keyCode;

    if ( charCode == '13' ) {
      // Enter pressed
      return false;
    }
}

См. этот вопрос для более подробной информации: javascript event e.which?

Ответ 3

Ни один из этих ответов еще не ответил на этот вопрос. Вопрос состоит из двух частей. 1. Ввод нажат. 2. Использование сосредоточено на вводе.

$('#input-id').on("keyup", function(e) {
    if (e.keyCode == 13) {
        console.log('Enter');
    }
});

Таким образом, ENTER будет обнаружен только тогда, когда пользователь нажимает на ввод FROM этого ввода.

Ответ 5

Более свежий и намного более чистый: используйте event.key вместо event.keyCode. Больше никаких произвольных номеров!

const node = document.getElementById('co');
node.addEventListener('keydown', function onEvent(event) {
    if (event.key === "Enter") {
        return false;
    }
});

Документы Mozilla

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

Ответ 6

Вот хорошая ссылка, которая обсуждает эту тему и предоставляет рабочие примеры

function DetectEnterPressed(e) {
var characterCode
if(e && e.which){ // NN4 specific code
e = e
characterCode = e.which
}
else {
e = event
characterCode = e.keyCode // IE specific code
}
if (characterCode == 13) return true // Enter key is 13
else return false
}

http://hspinfo.wordpress.com/2008/09/01/using-javascript-detect-enter-key-pressed-event-in-a-textbox-and-perform-the-action/

Ответ 7

Я использую этот код, и он отлично работает:

document.getElementById("theIdHere").onkeypressed = 
function() {
     if(this.event.which === 13)
        console('passed');
}