2013-04-15 3 views
8

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

ответ

16

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

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... 
} 

Live demo here

+0

+1. Хотя вы можете заменить 'alert()' на 'validate()'. – nnnnnn

+0

Да, изменено :-) –

+1

Спасибо. Это работает во всех браузерах? – frrlod

0

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

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

0

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

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

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

0

Или с JQuery

$("#wage").on("keydown", function (e) { 
    if (e.keyCode === 13) { //checks whether the pressed key is "Enter" 
     validate(e); 
    } 
}); 
0
$(document).on('keyup', function(e){ 
    var key = e.which; 
    if(key == 13) // the enter key ascii code 
    { 
     login(); 
    } 
}); 
Смежные вопросы