输入唯一的数字在文本框由javascript onkeypress问题

Enter only number in text box by javascript onkeypress problem

本文关键字:javascript onkeypress 问题 文本 唯一 数字 输入      更新时间:2023-09-26

我有一个html文本框,onkeypress事件将调用一个函数,该函数只允许输入数字(0-9)。

当用户将一些字符或字符串复制粘贴到文本框中时,就会出现问题。我不知道什么时候应该调用JavaScript函数来验证粘贴的值是Number还是Char。

任何想法?

也许你可以尝试使用onchange事件,然后用regex检查…

您可以使用一个新的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为表单字段创建自己的(伪)更改侦听器。