使用javascript检查输入是否为整数

使用javascript检查输入是否为整数,javascript,html,Javascript,Html,这就是我尝试过的: <html> <head> <script> function myFunction() { var num = document.getElementById("num").value; if (Number.isInteger(num)) { document.getElementById("show").innerHTML = "Number is integer"; } else { document.getElementById

这就是我尝试过的:

<html>
<head>
<script>
function myFunction() {
var num = document.getElementById("num").value;
if (Number.isInteger(num)) { 
document.getElementById("show").innerHTML = "Number is integer";
} else {
document.getElementById("show").innerHTML = "Number is not integer";
}
</script>
</head>
<body>
<input id = "num"></input>
<button onclick = "myFunction()">Submit</button>
<p id = "show">Result Appears Here</p>
</body>
</html>

函数myFunction(){
var num=document.getElementById(“num”).value;
if(Number.isInteger(num)){
document.getElementById(“show”).innerHTML=“Number is integer”;
}否则{
document.getElementById(“show”).innerHTML=“数字不是整数”;
}
提交
结果显示在此处


这里的问题是我得到了“数字不是整数”一直以来,即使数字是整数,本应检查输入是否为整数的代码也要提前感谢
#num
元素的
值作为
字符串返回,正如您在控制台中看到的那样。只需使用
+
符号将其还原为
数字

另一件事-每次函数调用都会覆盖
#num
元素的
innerHTML
属性。必须在
else
语句中插入第二个动作
document.getElementById(“show”).innerHTML=“Number is not integer”
,以避免覆盖

函数myFunction(){
var num=document.getElementById(“num”).value;
console.log(typeof num);
if(编号isInteger(+num)){
document.getElementById(“show”).innerHTML=“Number is integer”;
}否则{
document.getElementById(“show”).innerHTML=“数字不是整数”;
}
}

提交

结果显示在这里

嗯,试试这个怎么样:

if(!isNaN(num)){
    if(Number.isInteger(num){
        //your code
    } else {
        //your code
    }
}

请给出一点建议:了解如何正确缩进代码:

function myFunction() {
    var num = document.getElementById("num").value;
    if (Number.isInteger(num)) { 
        document.getElementById("show").innerHTML = "Number is integer";
    }
    document.getElementById("show").innerHTML = "Number is not integer";
}
如果您这样做,您将很容易看到最后一行将用Number is not integer替换您在段落中输入的内容

你需要一个
else
来完成这项工作

此外,文本框中的任何内容都是字符串,因此您必须首先通过
parseInt
运行它

这可能会更好:

function myFunction() {
    var num = parseInt(document.getElementById("num").value,10);
    if (Number.isInteger(num)) { 
        document.getElementById("show").innerHTML = "Number is integer";
    }
    else document.getElementById("show").innerHTML = "Number is not integer";
}
此外:

  • input
    是一个空元素,意味着它没有结束标记
  • 对于HTML属性,您确实不应该在
    =
    符号周围有空格,因为一些浏览器误解了这一点。例如:
    id=“something”

我完全忘记了“else”这个词,谢谢你的帮助@AmirWG Check还有第二种方法可以更快地获得正确的结果。(:注意
)%1
null%1
都返回
0
,所以模方法有它的怪癖。@RobG按照你的逻辑-我们可以放其他任何东西而不是数字-空对象、随机字符串或其他任何东西,输出可能不正确,但是…为什么?OP显然假设输入是一个数字。当然e-我们可以设定一个条件,如果输入不是数字类型,则返回false或其他任何内容,但OP确实需要它吗?这在IE中不起作用。为什么要麻烦isNaN测试?
number。isInteger(NaN)
返回false,因此单独测试NaN不会增加任何内容。