这似乎很简单,但我还没有找到明确答案。
我在母版页中有一个带有全局绑定的下拉框。我想要一个单独的按钮,位于设计内容区域(不主页面),单击时,告诉主页面中下拉框的任何实例隐藏,或者是可见等等。
在SOM编辑器中,下拉框告诉我它的层次结构是:
form1.MasterPages.Page1.Header.projectSize
在按钮的JavaScript上点击我尝试过:
xfa.resolveNodes("form1.MasterPages.Page1[*].Header.projectSize").presence="hidden";
和
var nodes = form1.MasterPages.resolveNodes("Page1[*].Header");
var len = nodes.length;
for(var i = 0; i < len; i++) {
nodes.item(i).projectSize.presence="hidden";
}
以及xfa.resolveNodes("
之前form1.Master...
的类似脚本,所有这些都不起作用。
是否可以定位母版页面元素,如果是,那么正确的语法是什么?
提前谢谢。
因此,仔细观察,var节点方法实际上是有效的。但它仅在第二次单击按钮时有效。单击按钮时运行的其他脚本工作正常,但是再次单击按钮时,“母版页”下拉列表仅“隐藏”...显然现在是这个问题。
答案 0 :(得分:1)
我已经弄明白了我的问题。不确定这是否可以帮助其他人,但这是我的解决方案,虽然我不完全理解它的工作原理。
要在主页面的每个潜在迭代上定位下拉元素,然后隐藏每个迭代,这个JavaScript在文档正文中的按钮中工作(我相信它与我最初声明的相同):
var nodes = form1.MasterPages.resolveNodes("Page1[*].Header");
var len = nodes.length;
for (var i = 0; i < len; i++){
nodes.item(i).projectSize.presence="hidden";
}
在撕掉与其一起运行的其他脚本时,我发现另一个表和我用来隐藏它的脚本是Master Page下拉元素需要两次点击才能正常运行的原因。 / p>
罪魁祸首表名为notesTable
,位于名为GrandTotals
的子表单中。以下脚本与其他脚本一起正常工作,但是在母版页引用脚本发挥作用后失败:GrandTotals.notesTable.presence="hidden";
我发现在第一次点击时让所有内容协同工作的解决方法是引用notesTable
中的每个单元格项目并单独隐藏它们:
form1.GrandTotals.notesTable.HeaderRow.notesHeader.presence="hidden";
form1.GrandTotals.notesTable.Row1.notes.presence="hidden";
我只有两个目标单元,所以它不是很大,但我可以想象这个解决方案变得混乱了许多行和单元格等。无论哪种方式,冗余,更长,黑客修复仍然是一个修复
我仍然不确定为什么会出现这个问题,以及为什么会解决这个问题。我还有一些其他引用JavaScripts的问题,这些问题不是特定的#34;足够,并且必须更改以引用层次结构的更多冗余特定位才能正常工作。这些问题一周前没有发生,现在它们已经成为主要的障碍。我认为它可能与某种PDF /阅读器后台更新有关,但我无法确定。
无论如何,这是对随机问题的随机修复,但它可能会为其他有类似混淆的人解决问题。