簡體   English   中英

通過javascript onkeypress問題在文本框中僅輸入數字

[英]Enter only number in text box by javascript onkeypress problem

我有一個 html 文本框, onkeypress事件將調用一個函數,該函數只允許輸入數字 (0-9)。 當用戶直接輸入時,這工作正常。

當用戶將某些字符或字符串復制並粘貼到文本框中時,問題就會出現。 我不知道什么時候應該調用該 JavaScript 函數來驗證粘貼的值是數字還是字符。

任何的想法?

也許您可以嘗試使用 onchange 事件,然后使用正則表達式檢查..

您可以使用新的 HTML5 表單標簽之一,如<input type=number" \\><input type="range" />

您是否考慮過不在此處編寫自己的腳本?

我確實使用了jQuery MaskedInput ,它非常適合這個

$("#textbox").change(function(){
    //validate the text here
});

我懷疑這是因為您對每個非數字輸入都返回 false。

您可以研究如何識別諸如 Ctrl+C 之類的東西,也可以切換到黑名單方法。 您真的只想禁止非數字可打印字符,因此您可以使用代碼點范圍來執行此操作。

如果您使用普通的 Javascript,請使用object.onpaste = handler; 例如

<html>...
    <input id="something" type="text" />
...
  <script>
    var el = document.getElementById('something');
    el.onpaste = function() {
       // do you stuff here
    } ...

使用onchange可能更好

使用像 jQuery 這樣的庫來為你做這件事很好。

但如果你想學習 JavaScript 的內部結構......自己動手吧! 有時在學習時重新發明輪子會更好。

另一種方法是使用setInterval為表單字段創建您自己的(偽)更改偵聽器。 有關示例,請參閱此 jsfiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM