我不是JavaScript的新手,但这是我第一次涉足Acrobat Scripting。
我要做的是根据在comboBox中选择的值更改文本字段。
由于我有许多不同的组合框具有相同的选项集,并且许多文本字段应该绑定到那些,我更喜欢可以重复使用的文档范围函数。
我不确定这是否可行,但这就是我在想的......
检测组合框何时更改。在更改事件提交时,从中获取导出值,并使其成为相关文本字段的值。
以下是步骤:
任何有关此的帮助将不胜感激。关于Acrobat事件触发器以及它们如何工作的特别好的来源。我已经浏览了大量的API文档,但在其上找不到任何内容。
答案 0 :(得分:4)
经过Google搜索的详尽时间/天后,我终于找到了一个有效的解决方案。
处理函数需要绑定到'Keystroke'事件。
处理程序功能应包含:
if(!event.willCommit) {
this.getField('[field]').value = event.change;
}
注意:'field'是要更新的字段的名称,event.change是在组合框中选择的值。
要获取所选内容的导出值,请使用以下内容:
if(!event.willCommit) {
this.getField('[field]').value = event.changeEx;
}
显然,只要与UI元素进行交互,就会触发“击键”。如果您不希望在文档加载时执行它,请确保在页面加载事件期间将处理函数绑定到事件。
思考:AcroForms JS(适用于Acrobat的Javascript)有一个严重破坏的事件模型。如果你在使用这个偶数处理程序时得到组合框的值,它将提供一个陈旧的值。它不仅需要一个模糊的黑客来使它工作,而且很少/没有AcroForms JS社区为这些难题提供答案。