如何在Firefox浏览器上触发HTML表格的onkeydown事件?

7

我想捕获表格单元格的按键操作。 以下代码在IE上可以工作,但在Firefox/Chrome上无法工作。

<table id="testing" onkeydown="alert('testing')"><br />
    <tr><td>testing</td></tr>` <br />
    </table>
<br />

有什么建议吗?
2个回答

11

http://www.w3schools.com/jsref/jsref_onkeydown.asp 说明大多数标签都支持 onkeydown 事件。

你需要设置 tabindex 属性(例如 tabindex="1")来标识该表格可以通过键盘进行选择。这样就可以触发键盘事件了。以下代码适用于 Firefox:

<table id="testing" onkeydown="alert('testing')" tabindex="0"><br />
<tr><td>testing</td></tr><br />
</table> 

2
这似乎是Firefox和Chrome对规范解释的问题,而不是你的代码。我刚刚尝试了一下,重现了这个问题。
W3C规范显示表格单元格应支持onkeydown,但目前Firefox/Chrome似乎不支持。你可以尝试通过他们的网站报告这个Firefox bug。通常会得到一些反馈,说明为什么它出了问题(或者为什么他们认为它没有问题,并且不会修复它,就像我以前遇到的那样)。
我可以问一下你为什么需要在表格单元格中捕获按键?
- 如果你希望用户输入文本,则应使用<input>标签,这将很好地注册按键事件。 - 如果按键是某种导航,则基于鼠标单击事件完成的上下文菜单可能更好。

  • 我会报告它。
  • 我正在使用它进行导航,与鼠标导航并行。
- Stavros
1
@Stavros,你报告了这个问题吗?如果是的话,你有链接吗? - rstackhouse
@rstackhouse 不,我没有,但是我希望现在已经修复了,特别是在使用jQuery时。 - Stavros

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接