我在同一页面上有<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
谢谢。
答案 0 :(得分:0)
不幸的是,我认为preventDefault()是你最好的选择。
早期版本的IE(请记得发布您正在测试的版本!)因不兼容而臭名昭着(具有讽刺意味的是,通过对HTML架构的非常严格的解释)。
编辑:对不起“回答”,darned网站不会让我评论,直到我达到50点声望。