使用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不会增加任何内容。