用于简单显示隐藏的Adobe Livecycle Javascript总体逻辑

Adobe Livecycle Javascript Overall Logic for Simple Show Hides

本文关键字:Javascript Livecycle Adobe 简单 显示 隐藏 用于      更新时间:2023-09-26

我正试图在Adobe Live Cycle中使用大量简单的显示/隐藏脚本,将几个表单组合为一个。我将把文本输入字段层叠在一起,并让它们都以不可见开始(使用Live Cycle的不可见设置)。这些对象的显示/隐藏将通过使用下拉列表进行控制。

基本任务是:

-Click an item from  a dropdown list.
-Initiate a show of relative invisible elements on the page based on the 
 raw value of the item selected.
-If user changes dropdown value, hide previously displayed data and show new
 corresponding data.

这一切能从下拉列表中完成吗?我从以前的一位开发人员那里继承了这个项目,所以我正在拼凑他的一些代码,并试图掌握实际需要做什么,以便完成任务。以下是显示隐藏结构的示例:

xfa.resolveNode("form1.#subform.indPaymentOptions").selectedIndex = 0;
xfa.resolveNode("form1.#subform.VendPaymentOptions").selectedIndex = 0;
xfa.resolveNode("form1.#subform.Display_Field_Pay_Types").rawValue = 
    "Please select an option from the 'Select type' drop-down menu above.";
taxReportable.rawValue = "";
AccountCodesDynamic.rawValue = "";
if (xfa.resolveNode("form1.#subform.payeeType").rawValue == 2) {
    xfa.resolveNode("form1.#subform.indPaymentOptions").presence = "visible";
    xfa.resolveNode("form1.#subform.VendPaymentOptions").presence = "hidden";
}
else if (xfa.resolveNode("form1.#subform.payeeType").rawValue == 3) {
    xfa.resolveNode("form1.#subform.indPaymentOptions").presence = "hidden";
    xfa.resolveNode("form1.#subform.VendPaymentOptions").presence = "visible";
}
else if (xfa.resolveNode("form1.#subform.payeeType").rawValue == 1) {
    xfa.resolveNode("form1.#subform.indPaymentOptions").presence = "hidden";
    xfa.resolveNode("form1.#subform.VendPaymentOptions").presence = "hidden";
}

上面的所有代码看起来都很简单,但在文档的初始化部分也有一些代码:

    if (xfa.resolveNode("#subform.RadioButtonList[2].ind").rawValue == 1)
    indPaymentOptions.presence = "visible";
else if (xfa.resolveNode("#subform.RadioButtonList[2].vend").rawValue == 2)
    vendPaymentOptions.presence = "visible";

我很想知道这种事情是否有必要。如果是的话,有人能解释一下在文档的初始化部分需要多少这样的代码吗?

如果没有必要,我粘贴在这篇文章顶部的显示/隐藏代码是否足以实现我想要实现的目标?

我试着浏览了Adobe的livecycle文档,但很难找到必要内容的大致概述,所以我很难使用它。非常感谢任何帮助。如果我缺少什么资源,我很乐意教自己如何做到这一点。此外,这是我在这里的第一篇帖子。我尽了最大努力遵循常见问题解答中的提交指南,但如果我违反了任何提交指南,请提前道歉。谢谢

下拉列表的代码看起来很直接,应该很好(尽管您可能会在使用LiveCyle一段时间后发现,即使是一些带有逻辑代码的简单任务也不起作用)。

initialize事件中的代码实际上是针对单选按钮组而不是下拉菜单的,因此可见窗体的功能实际上可能不仅仅由下拉菜单驱动。

在LC中,您往往会得到在初始化事件中重复的更改或验证事件的代码,以便在表单打开时正确显示/处理。当然,这可以通过使用对象的另一个eventsevent中的代码调用事件来解决。例如,在Drop-down initialize事件中,您将保存下拉列表代码,在下拉列表的change事件中,将使用this.execEvent("initialize"),它将在触发change事件时调用代码。

在没有看到表格的情况下,很难了解你的具体情况,但如果有什么不清楚的地方,请告诉我,或者我可以帮助你做其他事情。