2016-08-24 132 views
0

我在我的网站上使用以下脚本。网站上有一个表单,这个想法是,如果用户在该表单中按下“输入”,则应将焦点设置为另一个框。.onkeypress不在铬和Safari浏览器中工作

该脚本在IE和FF中完美运行,但在safari或chrome中不起作用。我原本以为2个以后的浏览器有不同的输入密钥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; } 
} 

回答

0

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

注: 当用户按下键盘上的键 的按键事件应该提高。但是,并非所有浏览器都会触发某些密钥的按键事件 。

改为使用keyup或​​。

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

似乎有些浏览器没有看到enter键插入一个字符。

+0

谢谢,Keyup没有工作。 keydown确实工作。但是,如果ff触发权限错误?有没有什么方法可以捕捉到什么是运行的,并相应地使用正确的功能 –

+0

你可以制作一个jsfiddle或codepen吗?通过这种方式,我可以尝试查看与您测试的代码完全相同的代码。 – seahorsepip

+1

谢谢,我明白了。似乎firefox的keyup也会触发用户无法访问的编辑页面。我添加了一个事件来阻止这个在母版页上,现在一切正常。 –

相关问题