2017-05-22 46 views
0

我有一個場景,我必須準備一個JS方法,其中Tab鍵應該觸發。即當功能被執行時標籤按鈕點擊應該被觸發。最好使用密鑰代碼。如何使用Keycode觸發鍵盤按鍵

+0

[在JavaScript中觸發鍵盤事件]的可能重複(http://stackoverflow.com/questions/961532/firing-a-keyboard-event-in-javascript) – JYoThI

+0

「選項卡按鈕單擊」沒有任何意義。你的意思是點擊一個按鈕應該派發一個[*鍵盤事件*](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/KeyboardEvent),它使用與*鍵*值相同的Tab鍵? *鍵*使用「Tab」,*使用'9'。 – RobG

+0

是的,功能應該執行或調度曾經提供的鍵碼 –

回答

0

您可以調度鍵盤事件,但結果可能不如壓倒性的。

如下圖所示,您可以派發具有適當屬性的事件,但在某些瀏覽器中,這些值爲空,並且瀏覽器幾乎忽略它。你可以選擇按鈕並按下「Enter」來點擊它。它調度選項卡,但焦點不移動,並且關聯的事件不報告構造函數中設置的值。

在輸入中輸入顯示您應該得到的結果類型。在很多瀏覽器中試用。

function showEventProperties(evt) { 
 
    document.getElementById('details').innerHTML = ['type','key','code','keyIdentifier','charCode','which','keyCode'].map(function(key) { 
 
    return key + ': ' + evt[key]; 
 
    }).join('<br>'); 
 
} 
 

 
function sendTab(node) { 
 
    var evt = new KeyboardEvent('keypress', { 
 
    'view': window, 
 
    'bubbles': true, 
 
    'key': 'Tab', 
 
    'charCode': 9, 
 
    'keyCode': 9, 
 
    'which': 9 
 
    }); 
 
    node.dispatchEvent(evt); 
 
} 
 

 
window.onload = function() { 
 
    document.addEventListener('keypress', showEventProperties, false); 
 
}
<input onkeypress="showEventProperties(event)"> 
 
<br> 
 
<button onclick="sendTab(this)">Do tab</button><button>Next button</button> 
 
<p id="details"></p>

你也可以試試老initKeyEvent

+0

非常感謝,但它不在IE中工作:(實際上我正在努力,因爲我真正的問題是不同的。 。請找到它的鏈接,如果更好的解決方案,你可以建議。 [鏈接](https://stackoverflow.com/questions/44062232/how-to-validate-shifttab-button-click-in-js) –

相關問題