2013-07-23 64 views
0

我有這個keypress函數,只允許數字和「/」我想添加到它的退格。 有沒有人有想法?允許退格鍵和數字和斜槓上的按鍵

function OnKeyPressNumberText(sender, eventArgs) 
{   
    var char = eventArgs.get_keyCharacter(); 
    //will allow just letters and "-" 
    var exp = /[^0-9/]/g; 
    if (exp.test(char)) { 
     eventArgs.set_cancel(true); 
    }    
} 
+2

這不是c#也不是asp.net它的javascript ... – wudzik

+0

Keymaster是相當不錯的BTW,處理大量的鍵盤事件邊緣案例/ hackarounds /醜陋。 https://github.com/madrobby/keymaster – AdamKG

回答

2

一些命令鍵有char值,以及:

輸入 - 13

退格 - 8

逃生 - 27

...

只是跳過所有小於32(或小於空格)的字符

var char = eventArgs.get_keyCharacter(); 

    // let command keys (BackSpace, Enter, Tab/Shift+Tab, Escape...) do its work 
    if (char < ' ') { 
    eventArgs.set_cancel(true); // <- see Mike Mouannes comments below 

    return; 
    } 

    //will allow just letters and "-" 
    var exp = /[^0-9/]/g; 

    if (exp.test(char)) { 
    eventArgs.set_cancel(true); 
    } 
+0

通過做eventArgs.set_cancel(true);我們允許數字而不是限制它們。而關鍵的char = 8在Firefox上不起作用。 –

+0

@Mike Mouannes:謝謝,我編輯了代碼 –

0

只有​​,keyup事件可以處理控制鍵。
請參閱this小提琴。
嘗試按領域backspace和按鈕a例如,你可以看到,當你按下backspace只​​和keyup事件啓動,當你按下鍵a所有launces你的事件。

而且看到當你按下​​不同a關鍵event.keyCodekeyup(65)和keypress(97)事件。

相關問題