Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将javascript添加到PDF文档中,以计算复选框的数量并将值输入文本框区域?_Javascript_Pdf_Adobe_Acrobat - Fatal编程技术网

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

如何将javascript添加到PDF文档中,以计算复选框的数量并将值输入文本框区域?,javascript,pdf,adobe,acrobat,Javascript,Pdf,Adobe,Acrobat,所以我有一个PDF文档,有25个复选框,叫做“cb1”到“cb25”。我希望能够计算选中框的数量,并将该数量放入名为“点”的文本框区域 我对JS或PDF表单的创建都不是很熟悉,但从我所了解到的情况来看,我认为我已经接近实现它了 我已将以下代码添加到文档级别: 函数计数复选框(字段名称){ //统计已选择的字段名 var计数=0; //循环遍历字段名数组 对于(i=0;i计算->自定义计算脚本->“编辑…” var总和=0; 对于(i=1;i

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

我对JS或PDF表单的创建都不是很熟悉,但从我所了解到的情况来看,我认为我已经接近实现它了

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

函数计数复选框(字段名称){
//统计已选择的字段名
var计数=0;
//循环遍历字段名数组
对于(i=0;i}//结束计数复选框
下面的代码应添加到保持框计数的文本字段中。为此,右键单击表单字段,然后单击属性->计算->自定义计算脚本->“编辑…”

var总和=0;
对于(i=1;i<26;i++){
f=“cb”+i;
field=getField(f);
如果(字段isBoxChecked(0)){
总和=总和+1;
}
}
event.value=总和;
这是在实际文档中测试和使用的。以下是有关代码的一些详细信息:

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


到JS以供Acrobat参考。将上述样本放在一起非常有用。

谢谢。这是可行的,但有一个小问题。。。如果未选中任何复选框,则从1开始计数,并且始终比实际的复选框数高1。我总是可以从event.value中减去一,但我不明白为什么会在代码中禁用计数。请尝试将字段的默认值设置为“0”。在“选项”选项卡中。我用5个盒子测试了它,结果是正确的。NVM。。。一定有一个复选框不可见,因为我重置了表单,现在它是准确的。关于isBoxChecked()的一点警告:只有当复选框中只有一个小部件时,它才能可靠地工作;如果有多个小部件(名称相同但返回值不同的复选框或单选按钮),小部件的编号可能不稳定,在这种情况下,最好使用field.value方法。请注意,event.value是进入调用脚本的字段的值;如果它是一个按钮,那么结果将毫无意义,因为该按钮没有值属性;您必须将代码添加到应该显示总和的文本字段中。那就行了。
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;