How can I execute a function on pressing the enter key in an <input> field?
I have an input and I'd simply like to add an event listener for it to activate a function when I press enter, when the input is focused. How do I do this with pure JS?
Right now I have:
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);
So basically the function validate()
activates when I click OR change the text, but I want to call it by pressing enter.
Solution 1:
You can use this:
var wage = document.getElementById("wage");
wage.addEventListener("keydown", function (e) {
if (e.code === "Enter") { //checks whether the pressed key is "Enter"
validate(e);
}
});
function validate(e) {
var text = e.target.value;
//validation of the input...
}
Live demo here
Solution 2:
var elem = document.getElementById("wage");
elem.onkeyup = function(e){
if(e.keyCode == 13){
validate();
}
}
Working Example http://jsfiddle.net/aMgLK/