如何在Acrobat页面关闭前验证表单字段?
解决PDF两个字段页面关闭前验证时机问题
page/close事件确实无法满足需求,因为它触发时页面关闭流程已经启动,返回值无法中断关闭操作。你需要改用**pageWillClose事件**,这个事件在页面关闭前的更早阶段触发,允许你中断关闭流程并提示用户。
实现代码(Acrobat JavaScript)
// 创建信任函数,用于权限操作 var checkFieldConsistency = app.trustedFunction(function() { app.beginPriv(); // 替换为你的两个字段名称 var fieldA = this.getField("YourFirstField"); var fieldB = this.getField("YourSecondField"); if (fieldA.value !== fieldB.value) { // 弹出警告提示,3代表警告图标 app.alert("两个字段内容不一致,请修改后再关闭页面!", 3); // 返回false阻止页面关闭 return false; } app.endPriv(); return true; }); // 给当前页面绑定WillClose事件 this.setPageAction(this.pageNum, "WillClose", "checkFieldConsistency();");
操作步骤
- 打开你的PDF,通过Acrobat的「工具」>「JavaScript」>「文档级JavaScript」,将上述代码添加进去
- 把代码中的
YourFirstField和YourSecondField替换为实际的字段名称(注意区分大小写) - 如果需要在多个页面生效,遍历页面并给每个页面绑定
WillClose事件即可
注意事项
- 必须使用
app.trustedFunction包裹逻辑,因为阻止页面关闭属于需要权限的操作 - 确保字段名称完全匹配,否则会导致获取字段失败
- 测试时要注意Acrobat的安全设置,避免阻止信任函数执行
内容的提问来源于stack exchange,提问作者korby
相关产品推荐
相关产品推荐

