2012-10-26 87 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键的状态,则会错过该选项。

相关问题