我有一个用户输入3个值的表单,然后计算出来。输出在表格中再次显示在一些“只读”输出框中。对于每个输入,我想验证它们是否是数字,如果没有,而不是显示“NaN”的表单我想显示错误说“请输入数字”(或类似的东西)。下面是我正在使用的代码,执行“onkeyup”:
function checkforNumber()
{
if (isNaN(sInput || dInput || pInput) == true) {
alert("You entered an invalid character. Please reset the form.");
}
else {
return(false);
}
}
我是否错误地使用此功能?语法有问题吗?
由于
答案 0 :(得分:3)
if (isNaN(sInput) || isNaN(dInput) || isNaN(pInput)) {
alert("You entered an invalid character. Please reset the form.");
}
还要确保这3个变量sInput
,dInput
和pInput
不是字符串,而是使用parseFloat
或parseInt
方法获得的。
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
会返回true
或false
,因此条件将评估为返回值。