javascript - .onkeypress 在 chrome 和 safari 中不起作用

标签 javascript opera

我在我的网站上使用下面的脚本。网站上有一个表单,其想法是如果用户在该表单中按“Enter”键,焦点应该设置到另一个框。

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

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 键视为插入字符。

关于javascript - .onkeypress 在 chrome 和 safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39131467/

相关文章:

javascript - 在 Opera 中同时按下两个鼠标按钮

java - Opera 驱动程序不适用于 Selenium - Java

javascript - 如何获取当前 ui-router 状态的完整 url?

javascript - 如何在 webpack 中设置 file-loader 的特定前缀?

javascript - 动态创建模型

background - Opera border-radius 不隐藏背景的 Angular 落

html - 嵌套标签行为标准

javascript - 尝试为我的游戏服务器设置加载屏幕

javascript - 了解如何从 AJAX 调用捕获数据

html - Opera 和 IE8 100% Height with bottom padding BUG