2013-02-08 193 views
0

我試圖在Adobe Live Cycle中使用大量簡單的顯示/隱藏腳本來將幾個表單合併爲一個。我會將文本輸入字段疊加在一起,並使它們都以不可見的方式啓動(使用Live Cycle的不可見設置)。這些對象的顯示/隱藏將通過使用下拉列表來控制。簡單顯示隱藏的Adobe Livecycle Javascript總體邏輯

的基本任務是:

-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文檔進行討論,但很難找到所需內容的廣泛概述,所以我很難使用它。任何幫助是極大的讚賞。如果有我缺少的資源,我很樂意教自己如何做到這一點。另外,這是我在這裏的第一篇文章。我盡我所能按照常見問題解答中的提交準則,但如果我違反任何提交準則,請事先道歉。謝謝。

回答

0

下拉代碼看起來非常簡單直觀,應該沒問題(儘管在使用LiveCyle一段時間後可能會發現,即使是一些具有邏輯代碼的簡單任務也不起作用)。

初始化事件中的代碼實際上是用於單選按鈕組而不是下拉菜單,因此可能的窗體的功能實際上可能不僅僅是下拉菜單。

你在LC中最終得到的結果是在初始化事件中重複更改或驗證事件的代碼,以便在表單打開時正確顯示/處理。這當然可以通過使用對象的其他eventsevent中的代碼調用事件來解決。例如。在下拉初始化事件中,您需要保存下拉代碼,並在下拉菜單的更改事件中使用this.execEvent(「初始化」),這會在觸發更改事件時調用代碼。

在沒有看到表單的情況下查看特定情況下發生的情況有點困難,但是讓我知道是否有什麼不清楚的地方,或者我可以幫助解決其他問題。