Javascript isNaN验证始终返回TRUE,但在浏览器中为FALSE
所以我在做一个函数,它应该由10个数字组成一个块,但是如果它是一个字符串,用window.alert提示“cannotbestring” 因此,我正在使用console.log进行测试,以检查该值是否为NaN。它总是返回true,但如果我在浏览器中做同样的事情,它就是false,这就是让我挣扎的原因。谢谢你与我分享你的智慧 我一直在寻找答案,但没有成功。致以最良好的祝愿Javascript isNaN验证始终返回TRUE,但在浏览器中为FALSE,javascript,validation,Javascript,Validation,所以我在做一个函数,它应该由10个数字组成一个块,但是如果它是一个字符串,用window.alert提示“cannotbestring” 因此,我正在使用console.log进行测试,以检查该值是否为NaN。它总是返回true,但如果我在浏览器中做同样的事情,它就是false,这就是让我挣扎的原因。谢谢你与我分享你的智慧 我一直在寻找答案,但没有成功。致以最良好的祝愿 btnCheck.addEventListener("click", divFunction); fu
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>
btnCheck.addEventListener(“单击”,divFunction);
函数divFunction(){
var number=number(document.getElementById(“number”).value);
console.log(isNaN(number.value));//为什么总是打印true?
if(isNaN(number.value)=“true”){window.alert(“不能是字符串”)}else{
document.getElementById(“myDiv”).innerHTML=“”;
var i;
对于(i=0;i您需要删除.value
部分。请改为:
isNaN(数字)
因为您将number
设置为输入值(不是元素),然后尝试从中获取.value
。因为number
已经是一个数字,所以它没有属性值
。数字没有值
属性-只需使用isNaN(数字)
。另外,isNaN
总是返回true
或false
,而不是字符串值。因此isNaN(something)==“true”
将始终为false。亲爱的朋友,我删除了`if(isNaN(number.value)==“true”`中的“.value”,但不幸的是,我的函数仍然打印数字,或nan,但没有提示错误。@JLRishe さん 誠にありがとうございます。お世話になっております。よろしく亲爱的Francis,它仍然是一样的。因此console.log现在可以正确打印,但函数不会提示错误,正如@JLRishe提到的,您还需要删除==“true
部分。因此您的if语句应该是if(isNaN(number)){
它可以工作,非常感谢,尽管我仍然不理解它:-)