AcroForm 字段(文本域)验证应用
如何在 AcroForm 中通过自定义验证脚本校验字段值?Adobe 提供了完善的基础设施,仅需简单脚本即可实现。
示例场景
验证文本字段值是否为 AAAA
或 BBBB
(实际场景中可能有更合理的值)。若用户输入 01234
,需弹出错误提示。
实现步骤
-
创建字段
创建文本框 → 右键打开属性对话框 → 选择 “Validate”(验证) 标签页。
-
选择验证类型
- 默认:无验证
- 数字字段:支持范围验证
- 文本字段:选择 “Custom Validation Script”(自定义验证脚本)
-
编辑脚本
点击 “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.