Adobe JavaScript开发需求:输入日期超365天自动勾选复选框
Adobe Acrobat 日期验证自动勾选复选框脚本方案
操作步骤
- 打开目标PDF表单,进入表单编辑模式(路径:工具 > 准备表单)
- 找到名为
DORMANT的日期字段,右键选择属性 - 切换至验证选项卡,选择自定义验证脚本,点击编辑按钮
- 粘贴以下JavaScript代码并保存
// 获取DORMANT字段输入值 var dormantDateStr = event.value; // 获取CheckBox2字段对象 var checkBox = this.getField("CheckBox2"); if (dormantDateStr) { // 解析MM/DD/YYYY格式日期(注意月份为0索引,需减1) var dateParts = dormantDateStr.split("/"); var dormantDate = new Date(dateParts[2], dateParts[0] - 1, dateParts[1]); // 重置今日日期的时分秒,避免时间干扰判断 var today = new Date(); today.setHours(0, 0, 0, 0); // 计算日期差:优先用年份差+日期比较(适配闰年) var yearDiff = today.getFullYear() - dormantDate.getFullYear(); var isOverOneYear = yearDiff > 1 || (yearDiff === 1 && today > new Date(today.getFullYear() - 1, dormantDate.getMonth(), dormantDate.getDate())); // 设置复选框状态:超过1年则勾选,否则取消 checkBox.checkboxValue = isOverOneYear ? "Yes" : "Off"; } else { // 字段为空时自动取消勾选 checkBox.checkboxValue = "Off"; }
关键说明
- 字段名称匹配:确保脚本中
DORMANT和CheckBox2与表单实际字段名完全一致(大小写敏感) - 日期格式适配:若你的日期格式为DD/MM/YYYY,需调整日期解析逻辑为
new Date(dateParts[2], dateParts[1] - 1, dateParts[0]) - 闰年兼容:脚本采用年份差+当日日期比较的方式,比单纯毫秒差计算更准确,能自动适配闰年不同月份的天数差异
- 空值处理:若
DORMANT字段未输入日期,复选框会自动取消勾选
内容的提问来源于stack exchange,提问作者mhughey
相关产品推荐
相关产品推荐

