取消提交事件后,为什么侦听器不会处理键盘事件?

时间:2018-01-11 05:29:03

标签: javascript

我的代码:

var form = document.getElementById("form");
form.addEventListener("submit", function(event){
  event.preventDefault;
});
var input = document.getElementById("input");
input.addEventListener("keyup", function(event){
  if (event.keyCode === 13) {
    handleSubmit();
  }
});

我取消了提交活动,但我想在handleSubmit enter上调用keyup。但是,当我运行页面时,在表单中键入一些内容,然后按enter,没有任何反应。我尝试过使用其他keyCode并聆听表单的keyup事件,但无法修复它。我不想使用点击事件。

编辑:我解决了。看到我的回答。

2 个答案:

答案 0 :(得分:1)

这对我有用:

var form = document.getElementById("form");
form.addEventListener("submit", function(event){
  handleSubmit();
  event.preventDefault();
});

我必须调用preventDefault的原因是因为我的网站主机在提交表单后总是会刷新页面,这是我不想要的。

答案 1 :(得分:0)

plz检查一下,我认为preventDefaultstopPropagation应该在keydown事件上

var form = document.getElementById("form");
form.addEventListener("submit", function(event){
  event.preventDefault();
});
var input = document.getElementById("input");
input.addEventListener("keydown", function(event){
  if (event.keyCode === 13) {
    handleSubmit();
    event.preventDefault();
    event.stopPropagation();
  }
});