首页 > 解决方案 > isNaN 验证总是返回 TRUE 但在浏览器中它是 FALSE

问题描述

所以我正在做一个应该制作10个数字块的函数,但如果它是一个字符串,则使用window.alert提示“不能是字符串”。

因此,我正在使用 console.log 进行测试以检查值是否为 NaN。它总是返回 true,但如果我在浏览器中做同样的事情,那就是 false,这就是让我苦苦挣扎的原因。请感谢您与我分享您的智慧!

我一直在寻找答案,但没有成功。最好的祝福。


btnCheck.addEventListener("click", divFunction);

function divFunction(){
  var number = Number(document.getElementById("number").value);
  console.log(isNaN(number.value)); //Why it always print true ? 
if(isNaN(number.value) === "true"){window.alert("CAN'T BE STRING")}else{
 document.getElementById("myDiv").innerHTML="";
  var i;
  for (i=0;i<10;i++){
    document.getElementById("myDiv").innerHTML+=number+"</br>";
  }
 }
}


<input type="text" id="number" placeholder="give me number"></input>
    </br>
      <button id="buttonCheck">Cyc</button>
    </br>
      <div id="myDiv"></div>

标签: javascriptvalidation

解决方案


您需要删除该.value部分。改为这样做:

isNaN(number)

推荐阅读