> 技术文档 > AcroForm 字段(文本域)验证应用

AcroForm 字段(文本域)验证应用

如何在 AcroForm 中通过自定义验证脚本校验字段值?Adobe 提供了完善的基础设施,仅需简单脚本即可实现。

示例场景
验证文本字段值是否为 AAAABBBB(实际场景中可能有更合理的值)。若用户输入 01234,需弹出错误提示。


实现步骤

  1. 创建字段
    创建文本框 → 右键打开属性对话框 → 选择 “Validate”(验证) 标签页。
    AcroForm 字段(文本域)验证应用

  2. 选择验证类型

    • 默认:无验证
    • 数字字段:支持范围验证
    • 文本字段:选择 “Custom Validation Script”(自定义验证脚本)
  3. 编辑脚本
    点击 “Edit” 按钮打开脚本编辑器:
    AcroForm 字段(文本域)验证应用
    AcroForm 字段(文本域)验证应用


基础验证脚本(带注释)

// 默认允许通过验证event.rc = true;// 检查非空且非预期值if (event.value != \"\" && event.value != \"AAAA\" && event.value != \"BBBB\") {  // 弹出错误提示 app.alert(\"输入值必须为 \'AAAA\' 或 \'BBBB\'!\"); // 拒绝验证通过(恢复原值) event.rc = false;}

关键对象说明

对象属性 说明 event.value 当前字段输入值 event.rc 验证结果(true=通过)

注意:验证在字段失去焦点时触发(如点击外部区域)。若验证失败,字段值将恢复为之前的状态。


优化方案:标记错误字段

event.rc = true; // 始终允许值变更if (event.value != \"\" && event.value != \"AAAA\" && event.value != \"BBBB\") {  app.alert(\"输入值必须为 \'AAAA\' 或 \'BBBB\'!\"); event.target.textColor = color.red; // 标记为红色} else {  event.target.textColor = color.black; // 恢复黑色}

优缺点

  • ✅ 用户可原地修改错误
  • ❌ 需额外校验提交数据(表单提交时需检查字段颜色或全局变量)

高级错误提示方案

问题:用户保存表单后,错误提示消失,仅剩颜色标记可能被忽略。
解决方案
在隐藏字段中显示错误信息(通过脚本动态更新)。

备选标记方式(避免影响可读性):

  • 修改边框颜色 event.target.borderColor
  • 修改背景色 event.target.fillColor

常见问题解答(Q&A)

Q1:如何检查字段是否包含子串 “V1”?
// 检查 \"V1\" 是否存在if (event.value.indexOf(\"V1\") === -1) {  app.alert(\"必须包含 \'V1\'!\"); event.rc = false; // 拒绝} else {  event.rc = true; // 通过}
Q2:如何避免删除内容时触发错误?
// 添加空值检查if (event.value !== \"\" && event.value.