在acrobat中是否可以select带有javaScript的文本框

Is it possible to select text boxes with javaScript in acrobat

我希望能够使用我的表单输入之一的 JavaScript 功能来显示或隐藏文本框。经过大量研究,我只能找到如何 select 和隐藏其他表单输入法。

这是我的:

var supplyBudget = this.getField("Supply Budget").value;
if (supplyBudget == ""){
/*text box selector*/.style.display = 3;
}
else if (supplyBudget =="0"){
/*text box selector*/.style.display = 3;
}
else{
/*text box selector*/.style.display = 1;
}

这在用户离开输入字段时运行。

*根据 freginold 的评论编辑代码

A​​crobat JavaScript 中没有 "selectors"。但是,您可以获取字段数,然后迭代获取名称以找到感兴趣的字段。例如,如果我想隐藏名称以 "name" 开头的所有字段,我可能会写...

for ( var i = 0; i < this.numFields; i++) {
    var field = this.getField(this.getNthFieldName(i));
    if ( field.name.indexOf("name") > -1 ) {
      field.display = display.hidden
    }
}

一般来说,要隐藏字段使用...

this.getField("myFieldName").display = display.hidden;

要显示隐藏字段,请使用...

this.getField("myFieldName").display = display.visible;

如果您想隐藏属于页面内容一部分的文本,您不能使用 PDF 执行此操作,除非将该特定文本项目分配给可选内容组 (OCG)...可以显示或隐藏。对于 PDF 页面上下文,没有 "elements" 的概念,就像 HTML 中那样。相反,有一个页面的绘画说明列表,但 JavaScript 无权访问它。

我发现“隐藏纯文本”和文本字段的唯一方法是使用类似于@joelgeraci 答案的方法。我不得不添加另一个空的只读文本框来覆盖要隐藏的文本和文本框。

如:

this.getField("HiddenField").display = display.visible;

然后当我需要“显示”文本和文本框时,我会简单地隐藏隐藏字段:

this.getField("HiddenField").display = display.hidden;

我有多个这样的案例,我一直在为工作创建一个表单,它背后有很多 JS。我不是专家,边走边学。