Ответ 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;
}
}
У меня только 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'>
document.getElementById('foo').onkeypress = function(e){
if (!e) e = window.event;
var keyCode = e.keyCode || e.which;
if (keyCode == '13'){
// Enter pressed
return false;
}
}
Чтобы перевернуть браузер:
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?
Ни один из этих ответов еще не ответил на этот вопрос. Вопрос состоит из двух частей. 1. Ввод нажат. 2. Использование сосредоточено на вводе.
$('#input-id').on("keyup", function(e) {
if (e.keyCode == 13) {
console.log('Enter');
}
});
Таким образом, ENTER будет обнаружен только тогда, когда пользователь нажимает на ввод FROM этого ввода.
используйте event.keyCode
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
//Do something
}
В этой связи уже обсуждается jQuery Event Keypress: Какой ключ был нажат?
Более свежий и намного более чистый: используйте event.key
вместо event.keyCode
. Больше никаких произвольных номеров!
const node = document.getElementById('co');
node.addEventListener('keydown', function onEvent(event) {
if (event.key === "Enter") {
return false;
}
});
Вот хорошая ссылка, которая обсуждает эту тему и предоставляет рабочие примеры
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
}
Я использую этот код, и он отлично работает:
document.getElementById("theIdHere").onkeypressed =
function() {
if(this.event.which === 13)
console('passed');
}