我的onKeyPress ENTER键事件在我的localhost上部署(在IE中)时起作用,但在测试服务器上部署时不起作用(在IE中)。在测试服务器上,ENTER事件在FireFox以及Chrome中运行,只是在测试服务器上的IE中(但在它运行的本地主机上的IE)
<script type="dojo/connect" event="onKeyPress" args="evt">
// append a ENTER key press event handler to combobox to allow quick submit
var key = evt.charOrCode;
if (key == dojo.keys.ENTER) {
if (!submitSearch(false)) {
dojo.stopEvent(evt);
}
}
</script>
任何人都可以提供有关为何会这样做的见解吗?
答案 0 :(得分:1)
我认为你正在使用错误的事件。尝试使用"onKeyDown"
事件。
仅当按下的键也会产生字符时才会使用按键事件,例如字母A-Z等(例如在文本框中)。
我不认为Enter键(在此示例中)应该触发它,因此这可能值得尝试使用 keydown 事件。因为该事件将独立于按下的键的类型而触发。
由于某些原因,IE认为你的第一台机器上的“Enter”键是可见字符,而在第二台机器上它没有(可能与不同的版本有关),但无论如何,我认为 keydown 事件会更好。
您可以阅读有关事件(和浏览器支持)here的更多信息。