0

我无法在输入字段中将 0 验证为可选择的“数字”,目前 0 不计入验证。

function verifyIt(){
if((Number(document.form1.baseline_du_115.value)) && document.form1.baseline_du_115.value>=0 && document.form1.baseline_du_115.value<=99){
    document.form1.submit();
    return true;
}else{
    alert("How many times per month do you drink more than 3-4 drinks on a single occasion?");
    return false;
}

有人告诉我,我应该确保在 if 语句中,我需要使 ==0 成为可选择的输入。我需要 0 才能不抛出 else

4

3 回答 3

2

0 == falsetrue由于truthiness的概念,在 javascript 中计算为。这就是为什么您的 if 子句false每次都会评估的原因。

看来您要验证Number(document.form1.baseline_du_115.value)已定义。这里有一些你可以写的方法:

document.form1.baseline_du_115.value != null
document.form1.baseline_du_115.value !== undefined
!isNaN(Number(document.form1.baseline_du_115.value))
于 2013-07-10T15:58:46.127 回答
1

这里发生的是 Number(0) 转换为 0,即转换为 false。如果您只想检查它是否是一个数字,请替换

(Number(document.form1.baseline_du_115.value))

!isNaN((Number(document.form1.baseline_du_115.value)))

这是有效的,因为如果你发送不是数字的东西Number(),你会得到 NaN

于 2013-07-10T15:58:57.827 回答
0

如果值为 0,Javascript 会将其转换为 false。因此,每次都会使 If 语句变为 Else

(Number(document.form1.baseline_du_115.value))
于 2013-07-10T16:01:15.410 回答