2016-08-24 109 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也會觸發用戶無法訪問的編輯頁面。我添加了一個事件來阻止這個在母版頁上,現在一切正常。 –

相關問題