You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Adobe Acrobat Pro中基于单选框选择设置必填文本域的JS问题

Adobe Acrobat Pro PDF表单单选框联动必填域解决方案

原代码问题分析

  1. 拼写错误:多处将requiredFields误写为reqiuredFields,导致数组仅能识别前6组映射关系,后续条目未被纳入检查逻辑。
  2. 执行时机单一:代码仅在表单加载时执行一次,单选框切换Yes/No时不会重新触发必填状态检查。
  3. 未处理反向逻辑:仅设置Yes时的必填状态,未在选No时取消必填,可能导致不必要的校验报错。
  4. 未确认单选框实际值:代码默认单选框值为字符串"Yes",若实际Export Value不同(如"Y"、"1"),判断逻辑会失效。

修正步骤与代码实现

1. 编写全局检查函数(文档级JavaScript)

进入「Prepare Form -> More -> All JavaScripts -> Document JavaScripts」,添加以下函数:

function updateRequiredFields() {
    // 定义问题域与对应详情域的映射表
    const fieldMappings = [
        ["Tuberculosis, asthma, bronchitis, or chest problems?", "Details 02"],
        ["Chest pain, heart condition or raised blood pressure?", "Details 03"],
        ["Rheumatism or arthritis?", "Details 04"],
        ["Blackouts, fits or attacks of dizziness?", "Details 05"],
        ["Bladder or kidney trouble?", "Details 06"],
        ["Dermatitis, skin issues, or Varicose veins?", "Details 07"],
        ["Depression, mental illness, or nervous breakdown?", "Details 08"],
        ["Any illness or medical condition, including defect of sight or hearing?If yes, please specify any special needs in the relation to your disability?", "Details 09"],
        ["Any other current or recent medical condition that prevented you from attending work on your normal duties or activities for more than one week during the past 12 months?", "Details 11"],
        ["Any past accidents or operations?", "Details 12"]
    ];

    // 遍历映射表,更新必填状态
    fieldMappings.forEach(mapping => {
        const questionField = this.getField(mapping[0]);
        const detailField = this.getField(mapping[1]);
        
        if (questionField && detailField) {
            // 注意:此处"Yes"需与单选框的Export Value一致,若实际值不同请修改
            detailField.required = (questionField.value === "Yes");
        }
    });
}

// 表单加载时初始化状态
updateRequiredFields();

2. 绑定函数到单选框触发事件

对每个Yes/No单选框执行以下操作:

  • 进入Prepare Form模式,选中目标单选框
  • 右键→Properties→Actions标签
  • 触发事件选择Mouse Up(点击后立即生效)
  • 动作选择Run a JavaScript,点击「Add」
  • 在编辑器中输入:updateRequiredFields();
  • 保存设置,对所有Yes/No单选框重复此步骤

3. 确认单选框Export Value

若代码仍不生效,需核对单选框的实际值:

  • 选中单选框→右键→Properties→Options标签
  • 查看每个选项的「Export Value」,将代码中"Yes"替换为实际值(如"Y"、"1"等)

测试验证

选择任意问题的Yes选项,对应Details文本域会自动设为必填;切换为No时,必填状态取消,提交表单时会自动校验必填项。

内容的提问来源于stack exchange,提问作者Rowan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:01:20