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

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

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


实现步骤

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

  2. 选择验证类型

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


基础验证脚本(带注释)

// 默认允许通过验证
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.