I’ve got a button with the onClick-event and a textfield with onKeyDown-event.
JavaScript
x
3
1
Button: onclick="myFunc(3)"
2
Textfield: onKeyDown="if(event.keyCode==13) myFunc(3);"
3
Somehow the button is getting called if I press the enter-key and I don’t know why.
Advertisement
Answer
When you press Enter in a text field, you trigger a form submission and browsers simulate clicking on the first submit button of the form.
You can avoid this by preventing the default action of the keypress (not keydown) event.
JavaScript
1
15
15
1
var s = document.querySelector('[type=submit]');
2
var t = document.querySelector('[type=text]');
3
var f = document.querySelector('form');
4
5
t.addEventListener('keydown', function(event) {
6
if (event.keyCode == 13) {
7
alert("enter pressed")
8
}
9
});
10
11
t.addEventListener('keypress', function(event) {
12
if (event.keyCode == 13) {
13
event.preventDefault();
14
}
15
});
JavaScript
1
4
1
<form action="/">
2
<input type="text">
3
<input type="submit">
4
</form>