我在这里正确使用Javascript中的isNAN函数吗?

时间:2011-07-14 10:37:08

标签: javascript html forms

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

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

我是否错误地使用此功能?语法有问题吗?

由于

2 个答案:

答案 0 :(得分:3)

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);

答案 1 :(得分:1)

if (isNaN(sInput) || isNaN(dInput) || isNaN(pInput))

这就是我认为你的意图。您需要一次一个地将要测试的每个值传递给isNaN函数。另请注意,您不需要== true部分,因为isNaN会返回truefalse,因此条件将评估为返回值。