【发布时间】:2011-03-05 18:28:53
【问题描述】:
在 HTML input 标记中捕获 ENTER 键时,我对“最佳实践”有些好奇。在 IE 中,这很容易。 window.event.keyCode 将是 13 当按下 enter 并且它非常简单。在所有其他浏览器中,参数对象被传递给函数。但是,这似乎基本上迫使您将函数处理程序后期绑定到对象。你可以这样做:
myInput.onkeypress = function (args) {
window.alert(args.keyCode);
};
但是,如果你想这样做:
<input onkeypress="checkEnter()" />
然后基本上checkEnter() 将被一个匿名函数(理论上它具有参数对象)调用,然后它会在没有参数的情况下调用checkEnter()。我猜你可以做一些完全古怪的事情,比如:
<input onkeypress="checkEnter(arguments)" />
我还没有尝试过,但我认为它可以工作。似乎这种设计基本上说后期绑定是捕获按键的唯一合理方法。我无论如何都不是 IE 的粉丝,但在我看来 IE 做对了这一点,而且他们的设计更出色。
我错过了什么吗?
【问题讨论】:
标签: javascript html internet-explorer dom w3c