.onkeypress 在 chrome 和 safari 中不起作用

.onkeypress not working in chrome and safari

我在我的网站上使用下面的脚本。网站上有一个表单,其想法是如果用户在该表单内按下 "enter",则应将焦点设置到另一个框。

该脚本在 IE 和 FF 中运行完美,但在 Safari 或 chrome 中不起作用。我最初认为后来的 2 个浏览器对回车键有不同的 ID,但是添加 "alert(evt.keyCode);" 不会产生警报,这意味着 .onkeypress 似乎在这 2 个浏览器中不起作用。我该如何解决?

var WebPartElementID ="ctl00_ctl34_g_db6615a7_4c3b_4a14_9bbc_43ce9d63c24d_FormControl0";
var WebPartData = document.getElementById(WebPartElementID);    
WebPartData.onkeypress = stopRKey;    

function stopRKey(evt) {
            var evt = (evt) ? evt : ((event) ? event : null);
            var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
            alert(evt.keyCode);
            if ((evt.keyCode == 13)) { document.getElementById("ctl00_ctl34_g_db6615a7_4c3b_4a14_9bbc_43ce9d63c24d_FormControl0_V1_I1_R1_I1_T4").focus(); return false; }
}

https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onkeypress

Notes: The keypress event should be raised when the user presses a key on the keyboard. However, not all browsers fire keypress events for certain keys.

改用keyupkeydown

有关差异的更多信息:http://www.quirksmode.org/dom/events/keys.html

似乎有些浏览器没有将 enter 键视为插入字符。