Dojo / connect“onKeyPress”ENTER事件在本地工作,但不在测试服务器上

时间:2013-04-11 14:12:05

标签: javascript dojo keyevent dojox.grid dijit.form

我的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>

任何人都可以提供有关为何会这样做的见解吗?

1 个答案:

答案 0 :(得分:1)

我认为你正在使用错误的事件。尝试使用"onKeyDown"事件。

仅当按下的键也会产生字符时才会使用按键事件,例如字母A-Z等(例如在文本框中)。

我不认为Enter键(在此示例中)应该触发它,因此这可能值得尝试使用 keydown 事件。因为该事件将独立于按下的键的类型而触发。

由于某些原因,IE认为你的第一台机器上的“Enter”键是可见字符,而在第二台机器上它没有(可能与不同的版本有关),但无论如何,我认为 keydown 事件会更好。

您可以阅读有关事件(和浏览器支持)here的更多信息。