是否可以在acrobat中使用javaScript选择文本框

时间:2017-07-03 17:39:33

标签: javascript textbox acrobat

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

这就是我所拥有的:

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的评论编辑代码

3 个答案:

答案 0 :(得分:1)

没有"选择器"在Acrobat JavaScript中。但是,您可以获取字段数,然后迭代以获取名称以便找到感兴趣的字段。例如,如果我想要隐藏名称以" 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;

答案 1 :(得分:1)

如果您想要隐藏作为页面内容一部分的文字,除非将特定文本项目分配给可选内容组(OCG),否则您无法使用PDF执行此操作...基本上是您的图层可以显示或隐藏。没有&#34;元素的概念&#34;对于PDF页面上下文,就像在HTML中一样。相反,有一个页面的绘画说明列表,但JavaScript无法访问它。

答案 2 :(得分:-1)

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

例如:

async datePromptValidator(promptContext) {
    return promptContext.recognized.succeeded;
}

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

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

我有很多这种情况,这些情况是我为工作而创建的,后面有很多JS。我不是专家,只是随便学习。