Acrobat文档级JavaScript:解决单字段触发影响所有文本字段的问题
解决表单字段脚本冲突,只修改当前操作字段的样式
别担心,这个问题其实很好搞定!核心问题就是你之前的文档级脚本会一次性操作所有字段,才把初始样式给覆盖了。咱们只需要让脚本只盯着当前正在输入的那个字段干活就行,我给你说具体怎么做,代码都给你写好,直接复制用就行:
步骤1:给每个文本字段绑定专属脚本
你不用写文档级脚本了,改成给每一个文本字段单独加脚本。这样每次你操作哪个字段,脚本就只改哪个字段的样式,完全不会碰其他字段的初始样式。
具体代码如下(直接复制粘贴就行):
// 获取当前正在操作的字段(不用改这行) var currentField = event.target; // 检查字段是否有合法值(0-4之间的数字) if (currentField.value !== "" && !isNaN(currentField.value) && currentField.value >= 0 && currentField.value <= 4) { // 有合法值时设置边框颜色,这里换成你想要的颜色,比如红色 currentField.strokeColor = color.red; } else { // 无值或值不合法时,恢复成你的初始样式颜色,比如黑色 currentField.strokeColor = color.black; }
步骤2:怎么把脚本绑到字段上(以Acrobat为例)
- 右键点击某个文本字段,选择「属性」
- 在弹出的窗口里切换到「计算」标签页
- 选择「自定义计算脚本」,把上面的代码粘贴进去
- 点「确定」保存,然后给其他所有文本字段重复这个操作
为什么这个方法能解决冲突?
之前的文档级脚本应该是每次有字段输入值时,就遍历所有字段重新设置样式,直接把初始样式脚本的效果覆盖掉了。而现在的脚本只针对当前触发事件的字段(就是你刚输入的那个)操作,其他字段的样式完全不会被改动,自然就不会和初始样式脚本冲突啦!
小提醒
- 记得把代码里的
color.red和color.black换成你实际需要的颜色,比如初始样式用的是蓝色,就把color.black改成color.blue - 如果你需要用自定义颜色,可以换成
new Color(["RGB", 0.5, 0.2, 0.8])这样的格式(里面的数字是RGB的0-1取值)
内容的提问来源于stack exchange,提问作者C.Nug
相关产品推荐
相关产品推荐

