我无法迭代文档中的所有字段以删除工具提示。这是我的代码:
var index=0;
while(index<this.numFields)
{
var nom=this.getNthFieldName(index);
var fieldName=this.getField(nom);
fieldName.userName = "";
index=index+1;
}
我收到错误说fieldName is null
,我的脚本无法运行。我已经看到了这个答案:
Iterating over all fields in a PDF form with JavaScript
我也遇到了与该代码相同的错误。如果我使用fieldName
手动为var fieldName=this.getField("field1");
分配字段名称,则可以正常使用。
有没有人知道为什么这会对我造成错误?
修改
我可以遍历列表并输出nom
到控制台,所以我知道它正确地抓取了字段的名称。似乎无法将该名称放入this.getField(nom)
语句中。不知道为什么......
答案 0 :(得分:1)
为什么要使用...为此?
使用
执行完全相同的操作(将鼠标提示文本设置为空白字符串)更简单for (var i = 0 ; i < this.numFields ; i++) {
this.getField(this.getNthFieldName(i)).userName = "" ;
}
那应该这样做。
但是,除非您有充分的理由,否则不建议将userName
设置为空字符串;如果您的表单与辅助设备一起使用,则需要它,它也是最接近和最简单的帮助项目。
答案 1 :(得分:1)
我想出了我的问题。
当我创建表单时,我使用自动字段检测为我创建字段以节省时间(此表单上有250个字段)。我首先需要脚本的原因是删除该功能生成的虚假工具提示名称。
显然,在其无限的智慧中,场检测功能命名为少数具有前导空间的字段(类似于&#34; OF INFORMATIONrow1&#34;)。由于getNthFieldName(index)
按字母顺序返回字段,因此返回其中一个已损坏字段并立即生成错误,因为getField()
不喜欢名称中的前导空格。
我重命名了几个字段,脚本就像一个魅力。