我不是JavaScript的新手,但这是我第一次尝试Acrobat脚本.
我想做的就是根据comboBox中选择的值更改文本字段.
由于我有许多具有相同选项集的不同组合框,并且应该绑定到这些文本框,因此我希望可以使用所有这些组合框的文档作用域功能.
我不确定这是否可能,但这就是我的想法…
检测何时更改组合框.在提交变更事件时,从中获取导出值,并使其成为相关文本字段的值.
步骤如下:
>捕获组合框onmouseup事件
>检测哪个组合框触发了事件
>使用数组列表将组合框的名称与其关联的文本字段匹配
>使用getField()来获取文本字段
>将文本字段值设置为组合框的导出值
任何帮助,将不胜感激.有关Acrobat事件触发器及其工作方式的特别好资源.我已经阅读了很多API文档,但找不到任何内容.
解决方法:
找到了!
经过数小时/几天的谷歌搜索,我终于找到了可行的解决方案.
处理程序功能需要绑定到“按键”事件.
处理函数应包含:
if(!event.willCommit) {
this.getField('[field]').value = event.change;
}
注意:其中“字段”是要更新的字段的名称,而event.change是在组合框中选择的值.
要获取选择的导出值,请使用以下命令:
if(!event.willCommit) {
this.getField('[field]').value = event.changeEx;
}
显然,每当与UI元素进行交互时,都会触发“击键”.如果您不希望它在文档加载时执行,请确保在页面加载事件期间将处理函数绑定到该事件.
想法:AcroForms JS(Acrobat的Javascript)具有严重损坏的事件模型.如果在使用此偶数处理程序时要获得组合框的值,它将提供一个过时的值.使其运行起来不仅需要晦涩难懂的技巧,而且几乎没有AcroForms JS社区可以为此类难题提供答案.