如何在PDF文档中添加javascript来计算复选框的数量,并在文本框区域中输入值

How can I add javascript to a PDF document to count the number of checked boxes and enter the value into a textbox area?

本文关键字:文本 输入 区域 复选框 文档 PDF 添加 javascript 计算      更新时间:2023-09-26

所以我有一个PDF文档,它有25个复选框,从"cb1"到"cb25"。我希望能够计算被选中的框的数量,并将该计数放入一个名为"点数"的文本框区域。

我对JS或PDF表单的创建都不太熟悉,但从我所能挖掘到的情况来看,我认为我即将开始工作。

我已经将以下代码添加到文档级别:

function CountCheckBoxes(aFieldsNames) {
    // count field names that have been selected
    var count = 0;
    // loop through array of field names
    for (i = 0; i < aFieldNames.length; i++) {
      // for field names with a value of not Off increment counter
      if (this.getField(aFieldNames[i]).value != "Off") count++;
    } // end loop of field names
    // return count
    return count;
  } // end CountCheckBoxes

我尝试添加以下代码文本框属性,以在鼠标上执行JS并作为计算值,这两个属性似乎都无法用复选框的计数填充文本框。

// var define field names to be tested
var aFields = new Array('cb1', 'cb2', 'cb3', 'cb4', 'cb5', 'cb6', 'cb7', 'cb8', 'cb9', 'cb10', 'cb11', 'cb12', 'cb13', 'cb14', 'cb14', 'cb15', 'cb16', 'cb17', 'cb18', 'cb19', 'cb20', 'cb21', 'cb22', 'cb23', 'cb24', 'cb25');
// count field names that have been selected
event.value = CountCheckBoxes(aFields);

下面的代码应该添加到保持框数的文本字段中。为此,右键单击表单字段,然后单击属性->计算->自定义计算脚本->"编辑…"。

var sum = 0;
for ( i = 1; i < 26; i++ ) {
        f = "cb" + i;
        field = getField(f);
        if (field.isBoxChecked(0)) {
            sum = sum + 1;
        }
    }
event.value = sum;

这是在实际文档中测试和工作的。以下是有关代码的一些详细信息:

有一个循环遍历所有25个字段,并为每个字段的名称创建一个字符串。字符串值为"cb1"、"cb2"等。然后按名称获取字段。如果选中该框,则isBoxChecked(0)字段方法将返回true。如果选中了一个框,代码会将所有选中字段的总和加起来。完成所有操作后,总和将分配给当前文本字段。

这里有一个指向JS for Acrobat参考的链接。当把上面的样品放在一起时,它非常有用。