【发布时间】:2014-02-09 21:28:08
【问题描述】:
我在同一页面上有一个<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
谢谢。
【问题讨论】:
-
你用哪个 IE 版本测试过这个?所有版本是否一致?您能否提供一个工作演示(例如在 jsFiddle、jsBin 等上)来演示它?
-
IE10,我现在不能制作小提琴,但如果以前没有人遇到过,我会的。我会将版本添加到标签中。谢谢。
-
stackoverflow.com/a/925387/1306811 :: IE 似乎将活动按钮定义为源中第一个定义的按钮。目前没有办法测试它,但它确实是答案,所以它可能会有所帮助!
-
快速浏览了一下。问题是我的按钮不是提交输入元素,这两个元素都不在表单内。实际上,页面上没有表格。谢谢。
标签: javascript html internet-explorer internet-explorer-10