我有一个带有两个输入文本框的pdf。1.(项目代码和2.(项目
我正试图填充";项目";基于";项目代码";但是嵌套语句为我提供了以下所有情况的第一个else-if条件的数据。例如,我应该得到";20%100毫升";对于代码5009113;25%50ML";对于代码5009111等等;20%100ML";用于项代码中的任何和所有值。请帮我一下:(
var v = this.getField("Item Code").valueAsString;
var RXC = Number(v);
if (v=="") event.value = "";
else if (RXC=5009113) event.value = "20% 100ML";
else if (RXC=5009111) event.value = "25% 50ML";
else if (RXC=5009112) event.value = "25% 100ML";
else if (RXC=5009099) event.value = "5% 250ML";
else if (RXC=5009110) event.value = "5% 500ML";
else if
语句中的条件包含以下表达式:
RXC=5009113
这是一个赋值表达式:将值5009113
赋值给变量RXC
。这被认为是";truthy;语句,因此它计算为true
,因此不再考虑else if
语句。
相反,您应该使用比较运算符===
。还可以看看这个关于==
和===
之间的区别的问题,以及为什么在这里使用===
更好。
我个人更喜欢使用空白字符来分隔表达式的各个部分:
else if (RXC === 5009113)
这让(我(更容易看到发生了什么,也更容易发现我可能在哪里使用了=
而不是===
。
但我建议重新处理整个代码部分,使用";如果/否则";带大括号,如下所示:
if (v === "") {
event.value = "";
} else if (RXC === 5009113) {
event.value = "20% 100ML";
} else if (RXC === 5009111) {
event.value = "25% 50ML";
} ...
正如评论中提到的那样,使用switch语句可能会更好。这将比几个if/else语句更简单:更易于阅读、调试和维护。