用于LiveCycle的Javascript中的If-Else语句

用于LiveCycle的Javascript中的If-Else语句,javascript,if-statement,livecycle-designer,Javascript,If Statement,Livecycle Designer,我正在AdobeLiveCycle上创建一个表单,在不同的字段中添加数字。我需要将最终的字段合格资产添加到前面的所有字段中,但不包括其中三个字段和一个字段的总和,但前提是它大于60000。我为第一部分编写了如下脚本,对我命名为TotalAssets的字段中的所有字段求和: this.rawValue =Cash.rawValue+SavingsAccount.rawValue+ChildrensSavings.rawValue+CheckingAccount.rawValue+ValueHome

我正在AdobeLiveCycle上创建一个表单,在不同的字段中添加数字。我需要将最终的字段合格资产添加到前面的所有字段中,但不包括其中三个字段和一个字段的总和,但前提是它大于60000。我为第一部分编写了如下脚本,对我命名为TotalAssets的字段中的所有字段求和:

this.rawValue =Cash.rawValue+SavingsAccount.rawValue+ChildrensSavings.rawValue+CheckingAccount.rawValue+ValueHome1.rawValue+ValueHome2.rawValue+ValueVehicle1.rawValue+ValueVehicle2.rawValue+ValueVehicle3.rawValue+BusinessAccount.rawValue+BusinessAssets.rawValue+StocksBonds.rawValue+Retirement.rawValue+CDs.rawValue+OtherInvestments.rawValue+OtherAssets.rawValue;
这很有效,但如果退休价值大于60000,则不应将其添加到计算中。这就是我写的EligibleAssets:

if (Retirement.rawValue > 60000) {
Retirement.rawValue = 0; 
} else {
Retirement.rawValue == Retirement.rawValue ; 
}

this.rawValue = TotalAssets.rawValue - (ValueHome1.rawValue+ValueVehicle1.rawValue +Retirement.rawValue);
当我将表单保存为PDF时,第一个字段的总数计算正确,但第二个字段为空


如果你能发现我遗漏了什么或做错了什么,我将非常感谢你的反馈。谢谢大家!

这里有两个简单的问题

第一个问题是,您在使用==的时候应该使用=

==-检查左侧是否等于右侧。示例:ifx==5{

=-将左侧设置为右侧的值。示例:x=5

在第一个示例中,我们不使用x,但在第二个示例中,我们将x更改为5

因此,您的代码应该如下所示:

} else {
    Retirement.rawValue = Retirement.rawValue;
}
但是,考虑到这一点,这段代码实际上并没有做任何事情。Retirement.rawValue不会改变

这导致了代码中的第二个错误,至少在我看来是个错误

if(Retirement.rawValue > 60000) {
    Retirement.rawValue = 0;
}
这实际上改变了Retirement.rawValue,这可能会潜在地改变表单的Retirement字段中的内容。更糟糕的是,表单可能看起来相同,但在其他字段计算时表现不同,因为您已经更改了它的rawValue。这将是一个很难捕获的错误

解决方案是创建一个新变量:

现在我们可以创建一个新变量,将该变量设置为退休金额或无,然后将该变量添加到末尾的其他原始值中:

var retirementOrZero;

if(Retirement.rawValue > 60000) {
    retirementOrZero = 0;
} else {
    retirementOrZero = Retirement.rawValue;
}

this.rawValue = TotalAssets.rawValue - (ValueHome1.rawValue + ValueVehicle1.rawValue + retirementOrZero);
现在我们有了一个数字,我们可以命名我们想要的任何东西,我们可以随意更改它,而不影响我们自己的代码。所以我们首先检查我们的退休值是否大于60000。如果大于60000,我们将变量设置为0。否则,我们将变量设置为退休值。然后我们将我们创建的变量添加到家庭和价值成本

最后一个问题,它应该做什么

if(Retirement.rawValue > 60000) {
    retirementValueOrZero = 0;
}
if(Retirement.rawValue > 60000) {
    retirementValueOrZero = 60000;
}
还是应该这样

if(Retirement.rawValue > 60000) {
    retirementValueOrZero = 0;
}
if(Retirement.rawValue > 60000) {
    retirementValueOrZero = 60000;
}
当然,如果将其设置为60000而不是设置为零,则可能需要将变量命名为cappedRetirementValue或类似的名称-只要确保在使用它的任何地方都重命名它

希望这有帮助

编辑:您说过,只有当退休金额大于60k时,您才会增加退休金额,所以您想要的是:

if(RetirementValue.rawValue > 60000) {
    retirementValueOrZero = RetirementValue.rawValue;
} else {
    retirementValueOrZero = 0;
}

好的,我想我误解了我的意思。我希望在最终计算中排除退休字段中小于60000的任何内容。除了将大于号更改为小于号并可能更改变量名称之外,我还需要做其他事情吗?唯一的一点是确保您记住更改变量时就像retirementValueOrZero=0和not retirementValueOrZero==0一样,你应该很好!也许一个好的助记符应该是一个单=将改变一个方面,a==将比较你的两个方面。最后一个跟进问题,如果retirement字段实际上大于60000,脚本是否可以这样做,只有数量大于60000在最终计算中将考虑60000以上。例如:如果某人退休时有50000,我们将排除全部金额,这是我最终可以做的!:但是,如果某人退休时有61000,则在最终字段中将只考虑最后1000。ifRetirementValue.rawValue>60000{retirementValueOrZero=RetirementValue.rawValue-60000;