【发布时间】:2018-03-15 09:01:10
【问题描述】:
我在使用三重嵌套 IF 语句时遇到问题。
我有一个带有两个单选按钮的问题的表单,这个问题并不总是可见的。我想捕获所做的选择,但默认情况下未选择单选按钮并且在源代码中仍然可见,但使用 CSS display:none 隐藏。因此,我需要指定仅在进行选择时才发送选择数据(用于测试的控制台日志)。
逻辑应该是,如果div可见,检查是否选择了Q3_1,如果为真,则发送是,如果为假,检查是否选择了Q3_0,如果为真,则发送False,如果未选择则不发送。
我认为最好有下面的逻辑,但我也无法让它工作。
如果 div 可见并且选择了 Q3_1,则发送 Yes 别的 如果 div 可见并且选择了 Q3_0,则发送否
非常感谢。
$(function () {
// Handler for .ready() called.
if ($("[id^=divWantMedical]").is(":visible")) {
if (document.querySelector("[id$='PreexistingConditions.Question3_1']").checked == true){
console.log("Send Yes");
} else {
if ((document.querySelector("[id$='PreexistingConditions.Question3_0']").checked == true){
console.log("Send No");
} else {
console.log("Don't send anything");
}
}
}
});
【问题讨论】:
-
不需要 `== true`,因为 checked 属性返回一个布尔值。我已将缩进固定为一致,是否清楚为什么它现在不能按预期工作?
-
谢谢 Rob,我在 console.log("Send No");行
-
因为你有来自
if ((的不平衡括号。我已经发布了一个答案,这实际上只是简化了逻辑,不需要额外的嵌套。 ;-)
标签: javascript if-statement nested