Выполнить функцию при вводе ключа
У меня есть вход, и я просто хотел бы добавить прослушиватель событий, чтобы он активировал функцию, когда я нажимаю кнопку ввода, когда вход сфокусирован. Как это сделать с помощью чистого 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>