2012-06-08 48 views
4

我在Tridion CMS擴展中的功能區工具欄按鈕中添加了一個按鈕。點擊按鈕後,彈出頁面將顯示兩個下拉菜單。通過更改第一個下拉控件中的值,我應該填充第二個下拉控件的值。在我的情況下,我正在使用ASP drop down list控件。暫時我將硬編碼的值填充到Java腳本中的第二個下拉列表中。對於這個要求,我使用下面的代碼,但我無法填充值(不識別標籤)。如何用JavaScript中的值填充下拉列表?

的Java腳本代碼:

ABC.WCMS.RTFExtension.Popups.ButtonPopup.prototype._populate = function() {  
    var selectedValue = $('#functionalcomponent').value;//First dropdown selected value 
    var dropdownId = $("#Dd");//Second Dropdown Control 

     switch (selectedValue) { 

      case "Home Ware": 
       dropdownId.append($("<option> </option>").val("Select Sub-Category").html("")); 
       dropdownId.append($("<option> </option>").val("Air-Conditioners/Coolers").html("Air-Conditioners/Coolers"));    
       break; 
      case "Education": 
       dropdownId.append($("<option> </option>").val("Select Sub-Category").html("")); 
       dropdownId.append($("<option> </option>").val("Colleges").html("Colleges")); 
       break; 
      default: 
       dropdownId.append($("<option> </option>").val("Select Sub-Category").html("")); 
       dropdownId.append($("<option> </option>").val("No Value").html("No Value")); 

     } 
    return true; 
} 

ASPX控制:

<%--Dropdown1--%> 
<asp:DropDownList ID="functionalcomponent" runat="server"></asp:DropDownList> 
<%--Dropdown2--%> 
<asp:DropDownList ID="Dd" runat="server"></asp:DropDownList> 

我怎麼能填充值第二次下降,從外部JavaScript文件下來?

回答

1

而不是按需添加值,你可以使用下面的方法:

  1. 事先添加的所有項目的DOM。
  2. 使用jQuery邏輯隱藏所需的項目。

    你可以參考以下職位的提示Hide options in a select list using jQuery

請看看jQuery disable SELECT options based on Radio selected (Need support for all browsers)

+1

感謝您的回覆。這不符合我的標準。這就是我爲實現級聯下拉列表所做的一切。第二個下拉列表值將從第一個填充。請給我一個解決方案。 –

1

我最近在一個GUI擴展,我們填充下拉基於價值的工作另一個下降。當我填充使用javascript我有以下代碼:

$j(c.SystemDropDown).append("<option value=\"" + value + "\">" + value + "</option>"); 

正如你可以看到我的例子追加整個<option>標籤,其中因爲是在.val()指定你的,也許你可以試試這個方法嗎?

我擁有的版本很棒:)

+0

非常感謝您給予回覆。看來你正在使用Tridion控件。你正在實施級聯下拉菜單。你可以告訴我沒有發生頁面刷新的邏輯我們如何實現這一點?請幫助我解決這個問題。 –

+0

在我的例子中,我正在使用c.SystemDropDown,它在擴展中被定義爲正常的