您正在為客戶設計一份 PDF 表格。如果客戶選擇「個人」作為帳戶類型,表單應顯示姓名和社會安全號碼欄位。如果他們選擇“商務”,該表格應顯示公司名稱和雇主識別號欄位。在紙本表格中,您可以列印這兩個部分並在其中寫上「如果適用」。每一個旁邊。在數位 PDF 中,條件邏輯可以完全隱藏不相關的部分,只向使用者顯示他們實際需要填寫的欄位。
PDF 形式中的條件邏輯是真實且實用的,但它也有重要的注意事項。與 Web 表單(其中 JavaScript 和 CSS 提供對可見性和佈局的靈活控制)不同,PDF 條件邏輯受到 PDF 格式有限的 JavaScript 實作以及不同 PDF 檢視器執行腳本的不一致方式的限制。了解什麼是可能的、什麼是不可能的,可以防止您設計出在您的測試環境中有效但對一半的接收者來說不可行的表單。

PDF 表單中的條件邏輯實際上可以做什麼
PDF 條件邏輯在 Acrobat JavaScript 上運行,這是 JavaScript 的簡化版本,自 2000 年代初以來一直是 PDF 規範的一部分。它可以根據使用者輸入顯示或隱藏表單欄位。它可以啟用或停用欄位、變更其顏色或邊框、將其標記為必填或可選,以及從查找表填入其值。它可以在使用者鍵入時驗證輸入,顯示警告訊息,並在滿足某些條件時觸發計算。
它不能做的是重組頁面佈局。隱藏欄位會將其從視圖中移除,但它佔用的空間仍然存在。下面的欄位不會向上滑動來填補空白。頁面不會重排。這是PDF 表單 和 Web 表單之間最大的區別,也是當有人嘗試在 PDF 中複製 Web 表單體驗時最令人失望的根源。如果您的條件邏輯需要顯著改變頁面佈局,那麼 PDF 是錯誤的工具。如果需要在固定佈局中顯示或隱藏一些字段,PDF 條件邏輯可以很好地處理。
嘗試編輯 PDF
無需安裝。直接在您的瀏覽器中工作。
如何根據下拉清單或複選框選擇設定顯示-隱藏規則
最常見的條件模式是一個下拉清單或一組單選按鈕,用於控制哪些後續欄位可見。在WukongPDF的表單編輯器中,首先建立控製字段、下拉清單或單選按鈕組,其值決定接下來發生的情況。給它一個清晰的名稱,例如“accountType”。然後建立所有可能顯示或隱藏的欄位。每個可能的欄位從一開始就需要存在於表單中。條件邏輯僅控制可見性。它不會創建或破壞字段。
建立欄位後,開啟控製字段的屬性並找到「驗證」或「模糊」事件標籤。您可以在此處編寫響應用戶選擇的 JavaScript。一個簡單的顯示-隱藏腳本如下所示: var choice = event.target.value; this.getField(“ssnField”).display = (choice ===“個人”) ?顯示.可見:顯示.隱藏;this.getField(“einField”).display = (choice ==="業務”) ?顯示.可見:顯示.隱藏;當使用者變更下拉清單時,腳本將運行,檢查所選值,並將每個欄位的顯示屬性設為可見或隱藏。
一個重要的細節:設定所有條件欄位的初始狀態以符合控製欄位的預設值。如果下拉式選單預設為“個人”,則SSN 欄位應開始可見,而 EIN 欄位應開始隱藏。如果欄位以錯誤的狀態開始,用戶會看到兩者或兩者都看不到,直到他們第一次與下拉式選單交互,這看起來很糟糕。初始狀態和腳本邏輯必須一致。
在使用者繼續之前檢查輸入的驗證規則
條件邏輯超出了輸入驗證的可見性。日期欄位可以檢查輸入的日期是否在可接受的範圍內。電子郵件欄位可以驗證輸入是否包含@符號和網域。電話號碼欄位可能需要正好十位數。驗證腳本在欄位的 Validate 事件中運行,該事件在使用者嘗試離開欄位時觸發。如果腳本呼叫 event.rc = false,焦點將停留在該欄位上,使用者無法繼續操作,直到輸入得到更正。
實用的電話驗證如下: var phone = event.value.replace(/\s|-|\(|\)/g, ''); if (phone !== "" && !/^\d{10}$/.test(phone)) { app.alert(" 電話號碼請輸入 10 位元電話事件。 false;此腳本會移除空格、破折號和括號,然後檢查剩餘字元是否剛好是十位數字。如果該欄位為空,則驗證通過,因為並非每個電話欄位都是必需的。如果該欄位有內容但不是十位數字,則腳本會顯示警報訊息並阻止使用者離開該欄位。
應謹慎使用驗證規則並提供清晰的錯誤訊息。使用神秘警報阻止使用者進入每個欄位的表單會讓人感到沮喪。僅驗證錯誤輸入會導致實際問題的字段,並解釋用戶需要修復的內容的表單可以創建信心。警報文字應準確說明錯誤所在以及如何修復。 「輸入無效」是沒用的。 「電話號碼必須為 10 位數字,且不得包含空格或破折號」告訴使用者要做什麼。
檢視器相容性問題及其解決方法
Adobe Acrobat Reader、Acrobat Pro 和大多數桌面 PDF 應用程式均支援 PDF JavaScript。大多數基於瀏覽器的 PDF 檢視器都不支援它,包括 Chrome 的內建檢視器、Firefox 的 PDF.js 和 Safari 的預覽。它在某些行動 PDF 應用程式中得到部分支持,而在其他應用程式中完全不支援。如果您的表單依賴條件邏輯和驗證腳本,並且您的收件人在不執行 JavaScript 的檢視器中開啟它,他們將看到所有字段,包括要隱藏的字段,並且不會觸發任何驗證規則。
對此尚無完美的技術解決方案。最好的方法是在表格頂部結合清晰的標籤和顯著的說明。用觸發條件標記條件部分:「如果您在上面選擇了業務,請完成此部分。」這樣,即使腳本編寫失敗,使用者也可以手動按照表單操作。 互動式 PDF 體驗優雅地降級為可用的靜態形式,而不是變得難以理解。
跨多個查看者測試條件形式
在分發條件 PDF 表單之前,請至少在四個環境中進行測試:桌面上的 Adobe Acrobat Reader、Chrome 內建 PDF 檢視器、Mac 上的 Safari 或預覽 PDF 檢視器以及 iPhone 和 Android 上的行動 PDF 檢視器。在每種環境中,有系統地完成表格。更改下拉選項並驗證正確的字段出現和消失。輸入無效資料並確認出現驗證訊息並阻止提交。儲存表單並重新開啟以檢查已儲存的狀態是否一致。
對於發送給已知受眾的表單(例如公司內部表單或透過特定入口網站提交的表單),僅測試受眾實際使用的檢視器。如果組織中的每個人都使用 Adobe Acrobat,則瀏覽器相容性就無關緊要了。如果您的表單將發佈在公共網站上並由任何人使用任何裝置打開,則假設很大一部分用戶將在沒有 JavaScript 的情況下看到該表單。將表單設計為在降級狀態下可以正常運行,所有欄位都可見,所有指令都清晰,並讓條件邏輯成為增強而不是要求。
當條件邏輯屬於 Web 表單時
如果您的表單需要多步驟精靈、動態欄位建立、即時伺服器驗證或欄位出現和消失時的頁面重排,則 Web 表單是正確的工具,而不是 PDF。 PDF 表單是具有互動增強功能的靜態文件。 Web 表單是具有類似文件輸出的互動式應用程式。這種差異很重要,因為在 PDF 中建立複雜的條件表單,卻發現一半的受眾無法如預期般使用它,這是一個令人沮喪且耗時的錯誤。
一種實用的混合方法是使用 Web 表單進行資料收集和條件邏輯,並根據提交的資料產生 PDF 以供簽署、存檔和共用。 WukongPDF 的PDF 編輯器 在此工作流程中表現良好:透過 Web 表單收集數據,使用回應填充 PDF 模板,並將經過修改的 PDF 交付給使用者作為記錄。 Web 表單處理邏輯。 PDF 處理簡報。每個工具都發揮其最擅長的作用。
嘗試編輯 PDF
無需安裝。直接在您的瀏覽器中工作。
