![](/img/trans.png)
[英]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.