If Else 如果工作不正常

If Else if not working correctly

我正在第 3 方基于 Web 的平台中构建基于表单的流程,初始表单是完整的,并且有一些字段是隐藏的,直到 selected 下拉选项。此代码在下面并且有效。

 //Hide fields until number of banners is selected
$("#CWE_Pull1").hide();
$("#CWE_Pullup2").hide();
$("#CWE_Pullup3").hide();
$("#CWE_Pullup4").hide();


$("#CWE_PullUp").setOnchange( function(newVal, oldVal) {
if (newVal == "1") {
$("#CWE_Pull1").hide();
$("#CWE_Pullup2").hide();
$("#CWE_Pullup3").hide();
$("#CWE_Pullup4").hide();
}
else if (newVal == "2") {
$("#CWE_Pull1").show();
$("#CWE_Pullup2").hide();
$("#CWE_Pullup3").hide();
$("#CWE_Pullup4").hide();
}
else if (newVal == "3") {
$("#CWE_Pull1").show();
$("#CWE_Pullup2").show();
$("#CWE_Pullup3").hide();
$("#CWE_Pullup4").hide();
}
else if (newVal == "4") {
$("#CWE_Pull1").show();
$("#CWE_Pullup2").show();
$("#CWE_Pullup3").show();
$("#CWE_Pullup4").hide();
} else if (newVal == "5") {
$("#CWE_Pull1").show();
$("#CWE_Pullup2").show();
$("#CWE_Pullup3").show();
$("#CWE_Pullup4").show();
}
});

在第 2 步中,表单转到不同的用户,我将字段标记为只读。我可以 select 如果用户通过表单生成器 GUI 具有父级、编辑、查看或禁用对字段的访问权限,这就是选择只读的方式。

在只读副本的调试器中,我可以看到变量显示的值如下图所示,所以如果我尝试下面的 If\Else if 语句,则什么也没有发生。

$("#CWE_Pull1").hide();
$("#CWE_Pullup2").hide();
$("#CWE_Pullup3").hide();
$("#CWE_Pullup4").hide();


if ("#CWE_PullUp" == "2") {
    $("#CWE_Pull1").show();
    $("#CWE_Pullup2").hide();
    $("#CWE_Pullup3").hide();
    $("#CWE_Pullup4").hide();
    }
  else if ("#CWE_PullUp" == "3") {
    $("#CWE_Pull1").show();
    $("#CWE_Pullup2").show();
    $("#CWE_Pullup3").hide();
    $("#CWE_Pullup4").hide();
    }
else if ("#CWE_PullUp" =="4") {
    $("#CWE_Pull1").show();
    $("#CWE_Pullup2").show();
    $("#CWE_Pullup3").show();
    $("#CWE_Pullup4").hide();
    }
else if ("#CWE_PullUp" == "5") {
    $("#CWE_Pull1").show();
    $("#CWE_Pullup2").show();
    $("#CWE_Pullup3").show();
    $("#CWE_Pullup4").show();
    }
;

Variable Image

如果我没有在 if \ else if 语句之前隐藏 4 个字段,那么这些字段都是未隐藏的。我还尝试将 'CWE_PullUp' 的值输出到不是下拉列表的第二个变量,并将其用作 if \ else if 语句的基础,但它也没有用。

"#CWE_PullUp" == "2" 总是 false.

如果你打算读取它的值,你应该使用$("#CWE_PullUp").val()。所以比较应该是$("#CWE_PullUp").val() == "2".

我认为你的条件有误...

"#CWE_PullUp" == "2"

这将测试字符串 #CWE_PullUp 是否等于 2!

我认为您希望改用变量值:

CWE_PullUp == "2"

这就是解决方案:

if ($("#CWE_PullUp").getValue() === "2") {
    $("#CWE_Pull1").show();
}
else if ($("#CWE_PullUp").getValue() === "3") {
    $("#CWE_Pull1").show();
    $("#CWE_Pullup2").show();
}
else if ($("#CWE_PullUp").getValue() === "4") {
    $("#CWE_Pull1").show();
    $("#CWE_Pullup2").show();
    $("#CWE_Pullup3").show();
}
else if ($("#CWE_PullUp").getValue() === "5") {
    $("#CWE_Pull1").show();
    $("#CWE_Pullup2").show();
    $("#CWE_Pullup3").show();
    $("#CWE_Pullup4").show();
}