0

我正在第 3 方基于 Web 的平台中构建基于表单的流程,初始表单已完成,并且有一些字段隐藏,直到通过下拉列表选择选项。代码如下,它可以工作。

 //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 步中,表单转到另一个用户,我将字段标记为只读。我可以通过表单构建器 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();
    }
;

可变图像

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

4

3 回答 3

2

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

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

于 2017-10-18T06:04:16.297 回答
1

所以这是解决方案:

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();
}
于 2017-12-11T05:17:29.940 回答
0

我认为你在你的条件下犯了一个错误......

"#CWE_PullUp" == "2"

这将测试 STRING#CWE_PullUp是否等于2!

我认为您想改用变量值:

CWE_PullUp == "2"
于 2017-10-18T06:04:59.353 回答