我在这里正确地使用了JavasScript中的isNAN函数吗

Am I using the isNAN function in JavasScript correctly here?

本文关键字:中的 isNAN 函数 JavasScript 在这里 正确地      更新时间:2023-09-26

我有一个表单,用户在其中输入3个值,然后计算这些值。输出在表单中的某些"只读"输出框中再次显示。对于每个输入,我想验证它们是否是一个数字,如果不是,我想显示一个错误,说"请输入一个数字"(或类似的东西(,而不是显示"NaN"。下面是我正在使用的代码,它是"onkeyup"执行的:

function checkforNumber() 
{
    if (isNaN(sInput || dInput || pInput) == true) {
        alert("You entered an invalid character. Please reset the form.");
    }
    else {
        return(false);
    }
} 

我用错这个函数了吗?语法有问题吗?

感谢

if (isNaN(sInput) || isNaN(dInput) || isNaN(pInput)) {
    alert("You entered an invalid character. Please reset the form.");
}

还要确保这3个变量sInputdInputpInput不是字符串,而是通过parseFloatparseInt方法获得的。

var sInput = parseFloat(document.getElementById('sinput').value);
var dInput = parseFloat(document.getElementById('dinput').value);
var pInput = parseFloat(document.getElementById('pinput').value);
if (isNaN(sInput) || isNaN(dInput) || isNaN(pInput))

我想这就是你的意图。您需要将要测试的每个值一次一个地传递给isNaN函数。还要注意,您不需要== true部分,因为isNaN返回truefalse,所以条件将计算为返回值。