Others

您可以向 PDF 表单字段添加条件逻辑和规则吗

您正在为客户设计一份 PDF 表格。如果客户选择“个人”作为帐户类型,表单应显示姓名和社会安全号码字段。如果他们选择“商务”,该表格应显示公司名称和雇主识别号字段。在纸质表格中,您可以打印这两个部分并在其中写上“如果适用”。每一个旁边。在数字 PDF 中,条件逻辑可以完全隐藏不相关的部分,只向用户显示他们实际需要填写的字段。

PDF 形式中的条件逻辑是真实且实用的,但它也有重要的注意事项。与 Web 表单(其中 JavaScript 和 CSS 提供对可见性和布局的灵活控制)不同,PDF 条件逻辑受到 PDF 格式有限的 JavaScript 实现以及不同 PDF 查看器执行脚本的不一致方式的限制。了解什么是可能的、什么是不可能的,可以防止您设计出一种在您的测试环境中有效但对一半的接收者来说不可行的表单。

Can You Add Conditional Logic and Rules to PDF Form Fields

PDF 表单中的条件逻辑实际上可以做什么

PDF 条件逻辑在 Acrobat JavaScript 上运行,这是 JavaScript 的简化版本,自 2000 年代初以来一直是 PDF 规范的一部分。它可以根据用户输入显示或隐藏表单字段。它可以启用或禁用字段、更改其颜色或边框、将其标记为必填或可选,以及从查找表填充其值。它可以在用户键入时验证输入,显示警告消息,并在满足某些条件时触发计算。

它不能做的是重组页面布局。隐藏字段会将其从视图中移除,但它占用的空间仍然存在。下面的字段不会向上滑动来填补空白。页面不会重排。这是PDF 表单 和 Web 表单之间最大的区别,也是当有人尝试在 PDF 中复制 Web 表单体验时最令人失望的根源。如果您的条件逻辑需要显着改变页面布局,那么 PDF 是错误的工具。如果需要在固定布局中显示或隐藏一些字段,PDF 条件逻辑可以很好地处理。

WukongPDF

尝试编辑 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 位电话号码。");事件.rc = 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 处理演示文稿。每个工具都发挥其最擅长的作用。

WukongPDF

尝试编辑 PDF

无需安装。直接在您的浏览器中工作。

立即开始 →