我在同一页上有一个<button>
(不是type="submit
)和一个<input type="text"/>
。
它们不在表单中,并且按钮在输入层次上有很多级别。
文本输入侦听keyup
事件,并执行与按钮的操作无关的自定义操作。
但是,在IE10上,当按下Enter键时,会触发按钮,而文本输入永远得不到键。Chrome、Firefox和Opera (最新的所有3款)都很好。
当:active
状态被触发时,我使按钮变红。当您专注于输入时,按钮不会改变,但是按回车后,按钮会变成红色。
在按钮上设置tabindex="-1"
不会改变任何事情。
我找到的解决办法是:
keydown
和preventDefault()
。看来keyup
太迟了。我不喜欢两者,尤其是第二个。还有什么我能做的吗?
希望这是有人遇到的事。
编辑:这里有一个工作示例:http://plnkr.co/edit/LhmTpk5TpWDjOJUD18Bm?p=preview
谢谢。
发布于 2014-01-20 16:06:49
不幸的是,我认为preventDefault()是最好的选择。
IE的早期版本(请记住发布您正在测试的版本!)因为不兼容而臭名昭著(具有讽刺意味的是,通过对HTML模式的极其严格的解释)。
编辑:很抱歉出现了“答案”,在我达到50 %的声誉后,才允许我发表评论。
https://stackoverflow.com/questions/21238604
复制相似问题