按Enter键上的IE触发按钮

时间:2014-01-20 16:02:09

标签: javascript html internet-explorer internet-explorer-10

我在同一页面上有<button>(不是type="submit)和<input type="text"/>

它们不在表单中,按钮在层次结构上方位于输入上方。

文本输入侦听keyup个事件,并执行与按钮操作无关的自定义操作。

然而,在IE10上,当按下Enter键时,按钮被触发,文本输入永远不会获得密钥。 Chrome,Firefox和Opera(最新的全部3款)都很好。

当触发:active状态时,我将按钮变为红色。当您专注于输入时,按钮不会改变,但按Enter键后,它会变为红色。

在按钮上设置tabindex="-1"不会改变任何内容。

我找到的解决方法是:

  • 在输入和keydown上收听preventDefault()。似乎keyup为时已晚。
  • 将输入放在表单容器中

我不喜欢这两个,特别是第二个。还有什么我可以做的吗? 希望这是某人遇到的事情。

修改 这是一个有效的例子:http://plnkr.co/edit/LhmTpk5TpWDjOJUD18Bm?p=preview

谢谢。

1 个答案:

答案 0 :(得分:0)

不幸的是,我认为preventDefault()是你最好的选择。

早期版本的IE(请记得发布您正在测试的版本!)因不兼容而臭名昭着(具有讽刺意味的是,通过对HTML架构的非常严格的解释)。

编辑:对不起“回答”,darned网站不会让我评论,直到我达到50点声望。