Jquery 如何将文本输入限制为仅数字,但允许从10键输入数字?

Jquery 如何将文本输入限制为仅数字,但允许从10键输入数字?,jquery,regex,format,Jquery,Regex,Format,我不明白为什么我不能用10键输入数字 以下示例自动填充“/”。我尝试了几种不同的方法来调整它的正则表达式,但当我这样做时,我不能退格或删除超过最后一个“/”的任何内容。(01/01/2000…01/01/您没有正确检查退格。 检查“键”的值 我认为应该分配如下: var key = e.keyCode; 另外,为什么它的一半是e,而之后你有事件 var key = String.fromCharCode(!event.charCode ? event.which : event.charCod

我不明白为什么我不能用10键输入数字


以下示例自动填充“/”。我尝试了几种不同的方法来调整它的正则表达式,但当我这样做时,我不能退格或删除超过最后一个“/”的任何内容。(01/01/2000…01/01/您没有正确检查退格。 检查“键”的值

我认为应该分配如下:

var key = e.keyCode;
另外,为什么它的一半是
e
,而之后你有
事件

var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
这对于JS参考可能也很有用:


您可能还想使用jQuery的
,它可以跨浏览器工作。

您没有正确地检查退格。 检查“键”的值

我认为应该分配如下:

var key = e.keyCode;
另外,为什么它的一半是
e
,而之后你有
事件

var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
这对于JS参考可能也很有用:


您可能还想使用jQuery的
,它可以跨浏览器工作。

如果您只允许数字,而忽略任何键: 在JavaScript标记中使用以下代码:

 $('*[data-validation="digit"]').keydown(function (e) {
                if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
                        (e.keyCode == 65 && e.ctrlKey === true) ||
                        (e.keyCode >= 35 && e.keyCode <= 40)) {
                    return;
                }
                if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
                    e.preventDefault();
                }
            });
例如:

<input data-validation="digit" /> 

在这个插件中,您可以将单词和数字或任何字符组合在一起,如果您想只允许数字而忽略任何键: 在JavaScript标记中使用以下代码:

 $('*[data-validation="digit"]').keydown(function (e) {
                if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
                        (e.keyCode == 65 && e.ctrlKey === true) ||
                        (e.keyCode >= 35 && e.keyCode <= 40)) {
                    return;
                }
                if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
                    e.preventDefault();
                }
            });
例如:

<input data-validation="digit" /> 

在这个插件中,您可以将单词和数字或任何字符组合起来

感谢您对按键代码的建议,尽管它仍然不允许使用10键中的数字。这是我学习不同事件处理程序的第一个示例之一,所以我实际上开始使用“事件”但后来换成了“e”。我可能只是变懒了,没有改变所有的“事件”是的。但这两种方式都是一样的。尝试不同的浏览器。还有,10是什么?10是键盘右侧的数字键盘。键盘顶部一行中的数字可以正常工作,但当你使用数字键盘上的数字时,它就不起作用了。我在Chrome、IE、Firefox和Opera中试用过,结果都是一样的感谢您对keyCode的建议,尽管它仍然不允许使用10键中的数字。这是我学习不同事件处理程序的第一个示例之一,因此我实际上开始使用“event”来处理所有事件,但后来切换到“e”。我可能只是变懒了,没有更改所有的“event”是的。但这两种方式都是一样的。尝试不同的浏览器。还有,10是什么?10是键盘右侧的数字键盘。键盘顶部一行中的数字可以正常工作,但当你使用数字键盘上的数字时,它就不起作用了。我在Chrome、IE、Firefox和Opera中试用过,结果都是一样的非常好用。正是我想要的。谢谢!非常好用。正是我想要的。谢谢!