Javascript 更改一个字段会导致其他前缀字段更改-Adobe Acrobat Standard DC
当我在其他字段中插入文本/数字时,表单中有两个字段会发生更改,为什么?它们没有连接,例如,如果我在请求的字段中写入我的全名(参考拍摄的屏幕截图),它会更改两个字段“Fratrukket Rabatt(折扣价格)”和“Total pris(总价)” Fratrukket-Rabatt(折扣价格):计算总折扣Javascript 更改一个字段会导致其他前缀字段更改-Adobe Acrobat Standard DC,javascript,pdf,adobe,acrobat,Javascript,Pdf,Adobe,Acrobat,当我在其他字段中插入文本/数字时,表单中有两个字段会发生更改,为什么?它们没有连接,例如,如果我在请求的字段中写入我的全名(参考拍摄的屏幕截图),它会更改两个字段“Fratrukket Rabatt(折扣价格)”和“Total pris(总价)” Fratrukket-Rabatt(折扣价格):计算总折扣 // Get first value as number var v1 = +getField("Rabatt i prosent").value; // Get second value
// Get first value as number
var v1 = +getField("Rabatt i prosent").value;
// Get second value as number
var v2 = +getField("Total pris").value;
// Calculate the result
event.value = (v1 / 100) * v2;
Total pris(总价):计算总价减去折扣
// Get first value as number
var viva1 = +getField("Pris per dekk").value;
// Get second value as number
var viva2 = +getField("Antall dekk").value;
// Get third value as number
var viva3 = +getField("Pris på arbeid").value;
// Get fourth value as number
var viva4 = +getField("Fratrukket Rabatt").value;
// Calculate the result
event.value = ((viva1 * viva2) + viva3) - viva4;
这是一个常见的问题,请帮助
这是绝对正确的行为,你会遇到 查看Acrobat JavaScript文档(Acrobat SDK文档的一部分,可从Adobe网站下载),这里有一个字段事件序列的说明和图表。与我们的问题相关的是,Calculate事件是该序列的一部分,每当字段值发生更改时,就会执行完整的计算序列。因此,如果您有一些默认值,并使用它们进行了一些计算,则会重新计算计算的字段值 然而,现在,逻辑本身存在相当多的混乱,并且一开始就几乎没有机会得到可靠的结果 首先,将(计算链的)所有计算合并到一个脚本中,并将其附加到计算链的最后一个结果字段,或附加到不可见的只读字段(该字段事件序列是其工作的原因),这被认为是最佳做法 根据示例得出的结论,您在Total Pris字段中的脚本可能如下所示: 请注意,实际上,计算中存在逻辑缺陷,因为折扣依赖于计算折扣后计算的总额
var deckprice = this.getField("Pris per dekk").value * this.getField("Antall dekk").value ;
var subtotal = deckprice + this.getField("Pris på arbeid").value*1 ;
var discount = subtotal * this.getField("Rabatt i prosent").value / 100 ;
var grandtotal = subtotal - discount ;
this.getField("Fratrukket Rabatt").value = discount ;
event.value = grandtotal ;
这应该可以做到
如果在独立字段(而不是“总Pris”字段)中使用此计算,则最后一行将更改为
this.getField("Total Pris").value = grandtotal ;
计算到此为止
另一个建议(嗯,这有点让我恼火……):我知道Acrobat中的自动场识别非常方便。但是,结果字段名不是很有用,而且(更重要的是)它阻止用户对表单进行认真的分析,从而导致逻辑错误。请共享有问题的PDF进行分析。我假设Max Wyss是正确的,因为当您更改名称时,表单只需重新计算,从而用正确的计算值替换错误的默认值。但是,可以肯定的是,在您描述的场景中,总价格的变化到底如何?