2012-10-26 135 views
3

我在手機領域有一種情況。在這個領域中,用戶可以鍵入以下電話號碼:檢測是否按下Shift鍵

(00)9999 9999
(00)99999 9999(聖保羅巴西)
和 1234 * 12(Nextel的數字)

在球場上手機,我配置調用這個javascript函數的onKeyDown事件:

function validateKeyDownPhone(event) { 

    var c = event.keyCode 
     keychar=String.fromCharCode(c) 
     valid = true 

    /** 
    * Excluding enter, backspace, etc. 
    */ 
    if (c > 46) {   
     if (keychar != null) { 
      var re = new RegExp("^[0-9\*#\(\) ]+$") 
      matched = keychar.match(re) 
      valid = matched != null && matched.length > 0 
     } 
    } 
    event.returnValue = valid 
} 

它工作正常,但是當我按下SHIFT + 5分%計的結果,例如。

如何識別是否按下換檔鍵?

回答

1

收聽keypress而不是​​事件。然後,您可以根據實際輸入的字符而不是按下的鍵進行拒絕。所以你不必猜測用戶的鍵盤佈局。例如,Mac上的選項+ 5不會輸入5,但如果您只注意shift鍵的狀態,則會錯過該選項。

相關問題