Это потому, что вы предотвращаете действие по умолчанию перед проверкой нажатия ключевого элемента . Чтобы это работало. Также в вашем случае я не могу понять, используете ли вы form
или что-то в этом роде, поэтому, если вы вообще не используете form
, вы не можете предотвратить там какое-либо событие.
const numField = document.getElementById('numAdder');
const addNumBtn = document.getElementById('addBtn');
addNumBtn.addEventListener('click', addVal);
function addVal() {
console.log('addVal called');
}
numField.addEventListener('keypress', function(e) {
if (e.key === 'Enter') {
addVal();
}
})
<label for="numAdder">Type a number here.</label>
<input type="text" id="numAdder" name="numAdder">
<button id="addBtn">add</button>
Но если вы хотите использовать form
, чтобы обернуть ваши элементы внутрь, вы можете сделать это, добавив type="button"
.
Это должно быть сделано следующим образом:
const numField = document.getElementById('numAdder');
const addNumBtn = document.getElementById('addBtn');
addNumBtn.addEventListener('click', addVal);
function addVal() {
console.log('addVal called');
}
numField.addEventListener('keypress', function(e) {
if (e.key === 'Enter') {
addVal();
}
})
<form>
<label for="numAdder">Type a number here.</label>
<input type="text" id="numAdder" name="numAdder">
<button id="addBtn" type="button">add</button>
</form>