【发布时间】:2020-02-09 00:31:11
【问题描述】:
这是 3 个字段的简单形式,我设置了条件来检查所有字段是否为空。
我在运行时提供了电子邮件输入,但以下情况为真:
if ((inputName.value == null) && (inputEmail.value == null) && (inputDate.value == null)){
console.log('empty fields')
alert('All the fields are mandatory')
return;
}
谁能告诉我这里有什么问题?
【问题讨论】:
-
.value返回一个字符串,因此永远不会是null -
@Andreas 而表达式的计算结果为
true。将条件更改为===使其正确返回false。 -
@Pointy 我知道,我没有说过任何反对这一事实的言论。我只说
x.value中的.value将是undefined,因为.value不会为空,而是inputName.value中的字符串o.O -
无论字段中的内容如何,该表达式都不应计算为真:jsfiddle.net/khrismuc/n632q5j4 在您的问题中添加minimal reproducible example。
-
@Andreas 重点是在这种情况下,
value不是字符串。也不是null。您假设这些变量是输入元素。它们不是,也没有value属性。它是undefined,当使用==时,它等于null。我猜这些变量是字符串,而不是输入元素。
标签: javascript if-statement conditional-operator