Javascript Adobe Acrobat Pro DC自定义计算脚本建议

Javascript Adobe Acrobat Pro DC自定义计算脚本建议,javascript,forms,adobe,acrobat,adobe-javascript,Javascript,Forms,Adobe,Acrobat,Adobe Javascript,我正在尝试使用以下内容创建表单: 要计算的一系列分子和分母 如果该字段留空,则不包括在计算中 要实时更新计算,而不是等到每个字段中都有一个数字后才进行计算 这是表单中唯一的计算,因此不使用更改计算顺序。在javascript文档中,我有 this.calculateNow(); 在字段的自定义计算脚本中,我有 (function () { var v1 = +getField("Text1").value; var v2 = +getField("Text2").value; var v3

我正在尝试使用以下内容创建表单:

  • 要计算的一系列分子和分母
  • 如果该字段留空,则不包括在计算中
  • 要实时更新计算,而不是等到每个字段中都有一个数字后才进行计算
  • 这是表单中唯一的计算,因此不使用更改计算顺序。在javascript文档中,我有

    this.calculateNow();
    
    在字段的自定义计算脚本中,我有

    (function () { 
    
    var v1 = +getField("Text1").value;
    var v2 = +getField("Text2").value;
    var v3 = +getField("Text3").value;
    var v4 = +getField("Text4").value;
    var v5 = +getField("Text5").value;
    var v6 = +getField("Text6").value;
    var v7 = +getField("Text7").value;
    var v8 = +getField("Text8").value;
    var v9 = +getField("Text9").value;
    var v10 = +getField("Text10").value;
    
    event.value = (v2 * v4 * v6 * v8 * v10) !== 0 ? ((v1 * v3 * v5 * v7 * v9) / (v2 * v4 * v6 * v8 * v10)) : "";
    })();
    
    我遇到的问题是:

  • 计算不会实时计算
  • 仍然必须输入所有字段才能进行计算
  • 如果输入零,则不会运行计算

  • 你的代码有点重复。您可以使用包含字段ID的数组:

    const fields = Array.from({length:10}, (_,i)=>"Text"+(i+1));
    
    然后,我们可以将字段映射到其值,并使用or运算符填充未设置的字段:

    const values = fields.map( f => +getField(f).value || 1 );
    
    然后可以将该数组减少到某个值,例如,通过相互应用:

    const result = values.reduce((a,b) => a*b)
    

    0?:“
    应该做什么?”??为什么不干脆
    我希望,如果分母字段中有一个是空的,或者是0,那么这些字段就不会包括在计算中。我将按照您的建议尝试,同时减少重复代码!这段代码是否经过验证,如果是,使用了哪些Acrobat版本?@max否,我也不知道