Выполнить функцию при вводе ключа

У меня есть вход, и я просто хотел бы добавить прослушиватель событий, чтобы он активировал функцию, когда я нажимаю кнопку ввода, когда вход сфокусирован. Как это сделать с помощью чистого JS?

Сейчас у меня есть:

HTML:

        Enter your wage:<input type="text" id="wage" value ="" size=20>
        <button id="sub">Submit</button>

JavaScript:

    var wage = document.getElementById("wage");
    wage.addEventListener("change", validate);

    var btn = document.getElementById("sub");
    btn.addEventListener("click", validate);

Таким образом, функция validate() активируется, когда я нажимаю OR, изменяя текст, но я хочу вызвать его, нажав enter.

Ответ 1

Вы можете использовать это:

var wage = document.getElementById("wage");
wage.addEventListener("keydown", function (e) {
    if (e.keyCode === 13) {  //checks whether the pressed key is "Enter"
        validate(e);
    }
});

function validate(e) {
    var text = e.target.value;
    //validation of the input...
}

Живая демонстрация здесь

Ответ 2

var elem = document.getElementById("wage");
elem.onkeyup = function(e){
    if(e.keyCode == 13){
       validate();
    }
}

Рабочий пример http://jsfiddle.net/aMgLK/

Ответ 3

Вот версия принятого в настоящее время ответа (от @MinkoGechev) с ключом вместо keyCode:

const wage = document.getElementById('wage');
wage.addEventListener('keydown', (e) => {
    if (e.key === 'Enter') {
        validate(e);
    }
});

function validate(e) {
    const text = e.target.value;
    //validation of the input...
}

Ответ 4

Если вы измените элемент кнопки на

<input type="submit" value="Submit">

он будет работать с кнопкой ввода на клавиатуре.

Ответ 5

Вам нужно что-то вроде wage.addEventListener('keydown', validate);

Затем для проверки 'enter' нажмите event.keyCode == 13 для проверки функции .

Ответ 6

Или с помощью jQuery

$("#wage").on("keydown", function (e) {
    if (e.keyCode === 13) {  //checks whether the pressed key is "Enter"
        validate(e);
    }
});

Ответ 7

$(document).on("keyup", function(e) {
    var key = e.which;

    if (key == 13) // the enter key ascii code
    {
        login();
    }
});

Ответ 8

<!DOCTYPE html>
<html>
<body>

<p>Press a key on the keyboard in the input field.</p>

<input type="text" size="40" onkeydown="myFunction(event)">

<p><strong>Note:</strong> The key property is not supported in Safari or IE 8 and earlier versions.</p>

<p id="demo"></p>

<script>
var a=function(){
var a =1;
var b=2;
var c=a+b;
document.getElementById("demo").innerHTML =c;
}

function myFunction(event) {
  var x = event.key;
 if(x=== "Enter"){
 a();
 }
}
</script>

</body>
</html>