我已经阅读了事件冒泡的含义,并理解了它的含义,但是我仍然无法理解为什么我的代码要求“ return false”。
function init() {
var fireButton = document.getElementById("fireButton");
fireButton.onclick = handleFireButton;
var guessInput = document.getElementById("guessInput");
guessInput.onkeypress = handleKeyPress;
}
function handleFireButton() {
var guessInput = document.getElementById("guessInput");
var guess = guessInput.value;
controller.processGuess(guess);
guessInput.value = "";
}
function handleKeyPress(e) {
var fireButton = document.getElementById("fireButton");
if (e.keyCode === 13) { //13 represent the "Enter" key.
fireButton.click();
return false;
}
}
window.onload = init;
答案 0 :(得分:1)
return false
将阻止表单提交。在这种情况下,您也可以使用e.preventDefault()
(这可能是您真正想要的)。
无论如何,您可以简单地完全删除form
标记,这不是必需的。 (或者,如果要使用onsubmit
,则处理onclick/onkeypress
而不是form
)
答案 1 :(得分:0)
由于这是一个Enter按钮(如果它是标记中的表单,则它可能会触发表单的提交),因此我建议将return false;
更改为e.preventDefault();
,因为它的含义更多在做,但这只是我的意见