Adobe PDF表单score字段值关联颜色脚本失效求助
问题修正方案
你的代码存在三个核心问题:
- 颜色赋值语法错误:Adobe Acrobat的JavaScript中,设置字段填充色必须使用
color()构造函数,不能直接用括号包裹RGB数值。 - RGB值与注释不匹配:代码里的RGB值和你注释的颜色完全对应错误(比如注释写红色,实际代码是绿色的RGB值),导致颜色逻辑混乱。
- 冗余的字段值获取:在
score字段的验证脚本中,直接用event.value就能拿到当前字段的总分值,无需重复调用this.getField("score").value。
修正后的代码:
var totalScore = event.value; // 确保数值是有效数字,避免非数值导致的逻辑错误 if (isNaN(totalScore)) { event.target.fillColor = color(1, 1, 1); // 无效值时设为白色 } else if (totalScore >= 1 && totalScore <= 26) { event.target.fillColor = color(1, 0, 0); // 红色 } else if (totalScore >= 27 && totalScore <= 48) { event.target.fillColor = color(1, 0.6, 0); // 橙色 } else if (totalScore >= 49 && totalScore <= 62) { event.target.fillColor = color(1, 1, 0); // 黄色 } else if (totalScore >= 63 && totalScore <= 72) { event.target.fillColor = color(0, 0.8, 0); // 绿色 } else { event.target.fillColor = color(1, 1, 1); // 其他情况设为白色 }
脚本位置说明:
这段代码放在score字段的验证标签是完全可行的,不需要放到全局区域。只要总分更新,验证脚本就会自动触发,更新字段填充色。
内容的提问来源于stack exchange,提问作者mgerving
相关产品推荐
相关产品推荐

