Javascript 输入类型编号,仅接受编号而不接受字母jquery

Javascript 输入类型编号,仅接受编号而不接受字母jquery,javascript,jquery,html,validation,input,Javascript,Jquery,Html,Validation,Input,这是我的代码,用于从用户处获取仅为数字的输入。没关系,但我在单击开始时遇到了一些问题;当我单击它时,它将提醒,即使它仍然为空,它也不是一个数字,因此我添加了另一个代码: $("#number").bind('keyup change click', function() { if ($(this).val().match(/^\d+$/)) { } else { alert("Not a number");

这是我的代码,用于从用户处获取仅为数字的输入。没关系,但我在单击开始时遇到了一些问题;当我单击它时,它将
提醒
,即使它仍然
为空
,它也不是一个数字,因此我添加了另一个代码:

$("#number").bind('keyup change click', function() {
            if ($(this).val().match(/^\d+$/)) {

            } else {
                alert("Not a number");
            }

从代码的开始。它确实解决了空或开始单击的问题。问题是当我键入
字母时,它
不再提示该消息。如何修复此问题?欢迎任何建议将正则表达式更改为
/^\d*$/
,它也将接受一个空字段,因为量词
*
接受0个或多个
\d
数字类型的字符,而
+
需要1个或多个数字来匹配

$(文档).ready(函数(){
$(“#编号”).bind('keyup change click',function(){
if($(this).val().match(/^\d*$/){
}否则{
警报(“不是数字”);
}
});
});

@Rias有上面的答案,但是,您也可以执行以下操作

if ($(this).val().length === 0) {
}
$("#number").bind('keyup change click', function() {
    //Check only if the text box is not empty
    if ( $.trim($(this).val()) != "") {
        if ($(this).val().match(/^\d+$/)) {
        } else {
            alert("Not a number");
        }
    }
});
演示@

更新:如果要删除任何非数字字符,请尝试以下操作

if ($(this).val().length === 0) {
}
$("#number").bind('keyup change click', function() {
    //Check only if the text box is not empty
    if ( $.trim($(this).val()) != "") {
        if ($(this).val().match(/^\d+$/)) {
        } else {
            alert("Not a number");
        }
    }
});

为什么
==
不是
=
?因为它有一个警告
预期为“==”,而看到的是“==”
我在netbeans工作,因此我摆脱了为什么要收听
单击
事件的警告?使用
===
通常是一种很好的做法,因为当您使用
==
时JavaScript处理类型转换的方式。例如,
0=='
,但是
'=0
。这不太好,我输入了多个单词,出现了多个错误,每次我关注输入时,都会显示警报。我只是调整了初始代码。你可能需要自己考虑一下。这也取决于你做什么,如果没有数字,你可以删除字段或最后一个单词或其他任何东西。当然,警报是令人不安的,应该在最后的实现中,但被要求。即使我写了一封信没有警报,现在检查我的答案中的演示。如果最后输入的密钥不是数字,你应该删除它,否则如果你键入“a”,然后键入1,它仍然会告诉你它不是数字,因为它与“a”匹配@briosheje这没关系,因为我只想要数字,所以在
1
前面有
a
仍然符合我不需要输入字母的需要。就这个。因此,如果我输入“1”,然后输入“2”,然后输入“a”,它会告诉我它不是一个数字,并会删除它,保留1和2,让我写更多的数字。