如果陈述由于某种原因而行事怪异

时间:2019-03-30 14:03:34

标签: javascript jquery html css

因此,我有一个if语句正在检查下拉列表的值。用户必须选择其中至少之一才能继续。这些值只是数字。我的if语句检查是否基本上等于零:

if (numChildren === 0 && numAdults === 0){
    Than do this
}

但是由于某种原因,它总是返回false。我已经在控制台上记录了numChildren和大人,以查看值是什么,并且它们是零。我不知道为什么它不起作用,我已经输入了“!”在它使它为真之前,但是它仍然为假。这是一个非常奇怪的错误。

$("#Discounts").on("click", function () {
        let numChildren = $("#children").val();
        let numAdults = $("#adults").val();
        console.log("Adults: " + numAdults + "\nChildren: " + numChildren);
        console.log(numChildren === 0 && numAdults === 0);
        if (numChildren === 0 && numAdults === 0) {
            alert("You must select");
            $("#children").val(1);
        }
    });

3 个答案:

答案 0 :(得分:0)

这并不奇怪。

您正在使用三等式比较,并且numChildren可能包含一个字符串形式的数字(例如“ 0”),您将它与zero进行比较作为实际数字。

它应与:

numChildren == 0 && numAdults == 0

Number(numChildren) === 0 && Number(numAdults) === 0

这是官方参考:https://tc39.github.io/ecma262/#sec-strict-equality-comparison

答案 1 :(得分:0)

如果在if语句中使用3等于,则numChildren的类型和值必须与0(整数)相同,而不仅仅是等于0。

尝试更改为2等于:

if (numChildren == 0 && numAdults == 0) {
            alert("You must select");
            $("#children").val(1);
        }

Reference

答案 2 :(得分:0)

您可以尝试以下方法:

figure()