PDF表单脚本需求:按单选按钮及文本框值设置文本颜色
PDF表单脚本实现:文本框根据计算结果动态变色
前置准备
先确认你PDF表单里的字段名称:
- 单选按钮组的实际名称(比如默认可能是
RadioButtonGroup1,需替换为你表单里的组名) - 第一个手动输入文本框的名称(比如
TextBox1) - 第二个手动输入文本框的名称(比如
TextBox2)
实现步骤
进入表单编辑模式:用Adobe Acrobat(或支持PDF表单脚本的编辑器)打开你的PDF,切换到「准备表单」模式。
给第二个文本框绑定计算脚本:
- 选中第二个文本框,右键选择「属性」→ 切换到「计算」标签页
- 选择「自定义计算脚本」,粘贴以下代码(记得替换字段名):
// 获取单选按钮选中的数值 var radioVal = Number(this.getField("RadioGroup1").value); // 获取第一个文本框的输入值,转为数字类型 var input1 = Number(this.getField("TextBox1").value); // 获取第二个文本框的输入值,转为数字类型 var input2 = Number(this.getField("TextBox2").value); // 计算乘积:单选值 × 第一个文本框值 var calcResult = radioVal * input1; // 获取第二个文本框的字段对象 var targetField = this.getField("TextBox2"); // 仅当所有数值有效时执行颜色判断 if (!isNaN(calcResult) && !isNaN(input2)) { if (input2 > calcResult) { targetField.textColor = color.green; // 大于乘积时设为绿色 } else if (input2 < calcResult) { targetField.textColor = color.red; // 小于乘积时设为红色 } else { targetField.textColor = color.black; // 等于时默认黑色,可自行修改 } } else { // 输入无效(非数字)时恢复默认黑色 targetField.textColor = color.black; }
- 添加实时触发逻辑:
为了让单选按钮切换、第一个文本框输入变化时,第二个文本框颜色自动更新,需要给这两个控件绑定脚本:- 选中单选按钮组,右键「属性」→「动作」标签页,选择「鼠标释放」事件,添加「运行JavaScript」,粘贴上面的同一段代码。
- 选中第一个文本框,右键「属性」→「动作」标签页,选择「键释放」事件,添加「运行JavaScript」,粘贴同样的代码。
注意事项
- 必须替换代码里的字段名称为你表单的实际名称(在「准备表单」模式下,选中字段即可查看名称)。
- 若需要调整等于乘积时的文本颜色,直接修改
else分支里的color.black即可(比如改成color.blue)。
内容的提问来源于stack exchange,提问作者Manor67
相关产品推荐
相关产品推荐

