我有这段代码强制用户只在输入中输入数字:
$("#Day").keyup(function()
{
var test =new RegExp( "/\D/G");
if(test.test($("#Day").val()))
$("#Day").val(replace("/\D/G" , ""));
});
但它让我输入非数字,并且没有在控制台中显示错误。
答案 0 :(得分:3)
这有效:
JSFIDDLE:http://jsfiddle.net/4RWBU/
我在某些方面编辑了原始代码。我将事件类型从keyup
更改为keydown
。如果我们使用keydown
,我们实际上可以阻止从显示屏按下的按键,但我不认为可以使用keyup
实现该按键(该密钥已经显示)。
$("#Day").keydown(function(e)
{
var test = /[0-9]/; //regex
var value = String.fromCharCode(e.keyCode); //get the charcode and convert to char
if (value.match(test)) {
return false; //dont display key if it is a number
}
});
答案 1 :(得分:2)
您可以在没有正则表达式的情况下执行此操作:
将type="number"
添加到您的输入中,您应该可以。
但是,如果你想支持IE和HTML 4用户,你也可以这样做:
$("#Day").keyup(function () {
var test = /\D/;
if (test.test($(this).val())) {
$("#Day").val($(this).val().replace(/\D/g, ""));
}
});