这就是我的尝试:
<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>
这里的问题是我总是得到“数字不是整数”,即使数字是整数,代码应该检查输入是否为整数或者不提前感谢
答案 0 :(得分:3)
value
元素的#num
作为string
返回,如您在控制台中看到的那样。只需使用number
符号将其恢复为+
。
另一件事 - 您在每次调用函数时都会覆盖innerHTML
元素的#num
属性。您必须将第二个操作document.getElementById("show").innerHTML = "Number is not integer"
插入else
语句以避免覆盖。
function myFunction() {
var num = document.getElementById("num").value;
console.log(typeof num);
if (Number.isInteger(+num)) {
document.getElementById("show").innerHTML = "Number is integer";
} else {
document.getElementById("show").innerHTML = "Number is not integer";
}
}
<input id="num"></input>
<button onclick="myFunction()">Submit</button>
<p id="show">Result Appears Here</p>
还有另一种使用modulo
检查数字是否为整数的方法。
function myFunction(num) {
num % 1 ? console.log("Not Integer") : console.log("Integer");
}
myFunction(5);
myFunction(5.5);
答案 1 :(得分:0)
嗯,试试这个:
if(!isNaN(num)){
if(Number.isInteger(num){
//your code
} else {
//your code
}
}
答案 2 :(得分:0)
只是一些建议:学习如何正确缩进代码:
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";
}
如果你这样做,你会很容易看到最后一行将用数字不是整数替换你在段落中添加的内容。
您需要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
是 void 元素,表示它没有结束标记。=
符号周围留出空格,因为有些浏览器误解了这一点。例如:id="something"