[英]How can I validate the text-box for restricting the input for characters only in onkeypress event in Javascript
[英]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.