.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.
改用keyup
或keydown
。
有关差异的更多信息:http://www.quirksmode.org/dom/events/keys.html
似乎有些浏览器没有将 enter
键视为插入字符。
我在我的网站上使用下面的脚本。网站上有一个表单,其想法是如果用户在该表单内按下 "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.
改用keyup
或keydown
。
有关差异的更多信息:http://www.quirksmode.org/dom/events/keys.html
似乎有些浏览器没有将 enter
键视为插入字符。