Javascript 否则,如果工作不正常

Javascript 否则,如果工作不正常,javascript,processmaker,Javascript,Processmaker,我正在一个基于第三方web的平台上构建一个基于表单的流程,初始表单已经完成,并且有一些字段是隐藏的,直到通过下拉菜单选择选项为止。下面是代码,它可以工作 //Hide fields until number of banners is selected $("#CWE_Pull1").hide(); $("#CWE_Pullup2").hide(); $("#CWE_Pullup3").hide(); $("#CWE_Pullup4").hide(); $("#CWE_PullUp").s

我正在一个基于第三方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步中,表单转到另一个用户,我将字段标记为只读。我可以通过form builder 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语句的基础,但它也不起作用。

CWE_PullUp==2总是错误的

如果要读取其值,应使用$CWE_PullUp.val。所以比较应该是$CWE_PullUp.val==2。

CWE_PullUp==2总是错误的


如果要读取其值,应使用$CWE_PullUp.val。因此,比较应该是$CWE_PullUp.val==2。

我认为您在条件方面犯了一个错误

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

我认为您应该使用变量值:

CWE_PullUp == "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();
}

这就是解决方案:

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();
}

从语句中删除和会导致表单未打开,这通常表明JavaScription存在问题。从您提供的屏幕截图中,看起来好像在范围中有这些变量可用。。。如果不是的话,那就意味着你必须解决这个问题,但不幸的是,我没有足够的信息来帮助你。我希望指出这个错误仍然会对您有所帮助。从语句中删除和会导致表单未打开,这通常表明您提供的屏幕截图中存在JavaScription问题,看起来好像在范围中有这些变量可用。。。如果不是的话,那就意味着你必须解决这个问题,但不幸的是,我没有足够的信息来帮助你。我希望指出这个错误仍然会对您有所帮助,所以这行应该是:if$CWE_Pullup.val==2{或者if$CWE_Pullup.val==2{第二个。您需要用和括号包装if条件。好的,这并没有取消隐藏字段。您可以检查浏览器控制台F12,并在此处发布屏幕截图或错误消息吗?甚至可以查看导致错误的特定文件中的行号。@Gunna您可以试着在代码中添加一些类似console.logValue 2的语句吗或者,在控制台中运行语句$CWE_Pullup.val,看看它是否返回了预期的结果。因此该行应该是:if$CWE_Pullup.val==2{或者if$CWE_Pullup.val==2{第二个。您需要用和括号包装if条件。好的,这并没有取消隐藏字段。您可以检查浏览器控制台F12,并在此处发布屏幕截图或错误消息吗?甚至可以查看导致错误的特定文件中的行号。@Gunna您可以试着在代码中添加一些类似console.logValue 2的语句吗或者,在控制台中运行$CWE_Pullup.val语句,看看它是否返回预期的结果。