【问题标题】:How to calculate fields in Acrobat PDF using Javascript?如何使用 Javascript 计算 Acrobat PDF 中的字段?
【发布时间】:2020-11-06 16:31:30
【问题描述】:

计算字段 Acrobat pdf Javascript 当我跳过一个字段时,总金额显示不正确,但是当每个字段都有一个从上到下的值时它可以正常工作。怎么了?

var fields = this.getField("amount");
var a = fields.getArray();
var sum = 0;
for (i = 0; i < a.length; i++){
sum += a[i].value;

//I tried to place zeros in the fields if there are no values
if (fields.value == null){
   fields.value = 0;
}
}
//This code accept the total amount and also hides the default zeros 
if (sum > 0){
    event.value = sum;
}

else {
    event.value = "";
}



【问题讨论】:

  • 文本字段永远不会为空。空字段的值是零长度(空)字符串。

标签: javascript pdf acrobat


【解决方案1】:

在这样的循环中,在将运行总计相加之前,我通常通过比较字段的value 和它的defaultValue 来检查字段是否有值。该行如下所示:

if (this.getField("myField").value != this.getField("myField").defaultValue) {

通常,在值级别上进行比较就足够了,但如果 0 是合法值,则比较必须包括类型。然后它看起来像这样:

if (this.getField("myField").value !== this.getField("myField").defaultValue) {

应该这样做。

【讨论】:

  • 我必须设置默认值吗?值为空
  • 不,你不需要设置具体的defaultValue;如果属性对话框中的默认字段为空白,则它对应于空字符串。
【解决方案2】:

为了解决这个问题,Javascript 加法运算符 ``+``` 也可用于添加(连接)字符串。空字段充当字符串,因此您需要通过将 + 附加到值来转义字符串。

sum += +a[i].value;

var fields = +this.getField("amount");一样

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2011-12-24
    • 2012-09-08
    相关资源
    最近更新 更多