2010-07-15 201 views
2

我正在使用此功能只允許在文本輸入中的數字。只允許使用JavaScript輸入數字並允許複製和粘貼?

$('input').bind('keydown', function(e) { 

    var key = e.charCode || e.keyCode || 0; 

    return (
     key == 8 || 
     key == 9 || 
     key == 46 || 
     (key >= 37 && key <= 40) || 
     (key >= 48 && key <= 57) || 
     (key >= 96 && key <= 105)); 
}); 

我該如何複製和粘貼?我已經嘗試添加控制鍵碼17,但它仍然不起作用。

對於組合鍵有什麼特別的要求嗎?

謝謝

+0

是不是第一行是一個jQuery選擇器?這不應該至少有一個jQuery標籤嗎? – Adam 2010-07-15 16:27:05

+0

或者是爲jQuery特有的問題保留的標記? (只是好奇) – Adam 2010-07-15 16:28:28

+0

@ advs89再想一想(不要懶得讀完整的問題不只是第一行......) – galambalazs 2010-07-15 16:28:48

回答

-2

保持按下最後一個鍵碼的記錄。由於您使用的是onkeydown,因此cmd-v會顯示爲鍵碼爲224(cmd)的事件,然後是鍵碼爲86(v)的事件。如果前面的鍵與cmd和後面的v匹配,則允許它通過。

(你可能會檢查CTRL適用於Windows/Linux的pasters以及)

+0

比粘貼更多的方法:例如從上下文和編輯菜單。還有拖動。 – 2010-07-16 08:19:45

5

你喜歡的東西更好:

$('input').bind('keyup', function(e) { 
    this.value = this.value.replace(/[^0-9]/g,''); 
}); 

或者你也可以使用change事件。在這種情況下,不管數據如何進入字段,它都將被驗證(並且移除非數字輸入)。

+0

+1,以簡化和使用'change'事件的簡單性。 – 2010-07-16 08:20:36

相關問題