如何将 javascript 添加到 PDF 文档以计算选中框的数量并将值输入文本框区域?
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 文档,其中有 25 个复选框,从 "cb1" 到 "cb25"。我希望能够计算选中的框数并将该计数放入名为 "Points".
的文本框区域
我对 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);
下面的代码应该添加到文本字段中,以保持对框的计数。为此,右键单击表单域,然后单击属性 -> 计算 -> 自定义计算脚本 -> "Edit..."。
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)
字段方法将 return 为真。如果选中一个框,代码将增加所有选中字段的总和。全部完成后,总和将分配给当前文本字段。
Here is a link给Acrobat参考的JS。将上面的样本放在一起时非常有用。
所以我有一个 PDF 文档,其中有 25 个复选框,从 "cb1" 到 "cb25"。我希望能够计算选中的框数并将该计数放入名为 "Points".
的文本框区域我对 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);
下面的代码应该添加到文本字段中,以保持对框的计数。为此,右键单击表单域,然后单击属性 -> 计算 -> 自定义计算脚本 -> "Edit..."。
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)
字段方法将 return 为真。如果选中一个框,代码将增加所有选中字段的总和。全部完成后,总和将分配给当前文本字段。
Here is a link给Acrobat参考的JS。将上面的样本放在一起时非常有用。