簡體   English   中英

如何只計算PDF表單中選中的復選框?

[英]How can I count only checked checkboxes in a PDF form?

我在Acrobat中打開的Adobe PDF中有一些復選框。 我要計算已選中的復選框,並在另一個文本框中輸出數字。 如何使用JavaScript做到這一點? 還是其他方法?

多虧了George Johnson早在2008年的腳本,我才能夠用一個非常簡單的腳本實現這一目標。

我所做的是創建一個文本字段,將其設置為只讀,並將其設置為自定義計算值,並將其放入腳本字段中:

// Initialize counter variable
var sum = 0; 
// Loop through the fields
for (var i = 1; i < 180; i += 1) {
// Add one if check box is not Off
    if (getField("CheckBox" + i).value !== "Off") {sum += 1;}
} 
// Set this field's value to the sum
event.value = sum;

重要說明: for循環中包含"CheckBox" + ii < 180 ,因為我的所有復選框都通過“ Checkbox180”命名為“ CheckBox1”,“ CheckBox2”等。

如果所有復選框均具有唯一的名稱,則需要將這些名稱放入數組中並在代碼中循環遍歷。 如果您只有15個復選框,則將腳本中的180更改為15。

一種可能是設置一個計數器,枚舉所有字段,檢查該字段是否為復選框,然后其值是否不為“ Off”; 在這種情況下,增加計數器。 這樣做的函數如下所示:

function countCheckedBoxes() {
    var cntr = 0;
    for (var i = 0; i < this.numFields; i++) {
        var mf = this.getField(this.getNthFieldName(i));
        if (mf.type == "checkbox") {
            if (mf.value != "Off") {
                cntr++;
            }
        }
    }
if (cntr > 0) {
    app.alert("The form has " + cntr + " checked boxes")
} else {
    app.alert("The form has no checked boxes") 
    }
}

那應該做到的。

由於應該將復選框的數量移到另一個字段中,因此您可以使用以下代碼替換cntr的評估:

if (cntr > 0) {
    this.getField("boxCount").value = cntr + " boxes checked";
} else {
    this.getField("boxCount").value = "no boxes checked";
}

...或只需輸入cntr的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM