2012-02-09 78 views
1

好的,我在做什麼。基於某些下拉值,我正在啓用另一個下拉值。 是否可以根據我現有的代碼在某些特定區域顯示該下拉列表。在特定區域顯示我的下拉框

 if (SelectedIndex == 2 || SelectedIndex == 5 || SelectedIndex == 7) { 
      $("#DomContainer").remove(); 
      var MainContainer = document.createElement("Div"); 
      MainContainer.id = "DomContainer"; 
      $("body").append(MainContainer);     
      var Options = new Array(); 
      for(var i=1;i<=28;i++){ 
       Options.push(i); 
      } 
      AddDropDown(Options); 
     } 

    function AddDropDown(Options) { 
     var selectHTML = "<label>Day:</label>&nbsp;"; 
     selectHTML += "<select>"; 
     for (i = 0; i < Options.length; i = i + 1) { 
      selectHTML += "<option value='" + Options[i] + "'>" + Options[i] + "</option>"; 
     } 
     selectHTML += "</select>"; 
     document.getElementById("DomContainer").innerHTML = selectHTML; 
    } 

For example <div id="new_drop">//Display the drop down here </div> 

回答

1

簡直是第二個參數添加到AddDropDown傳遞容器的ID到要插入您的下拉列表:

function AddDropDown(Options, containerId) { 
    ... 
    document.getElementById(containerId).innerHTML = selectHTML; 

然後調用它像這樣:

AddDropDown(Options, "new_drop"); 

(如果我理解正確)

0

無需刪除並追加el從DOM中提取,只需替換現有的元素內容...這裏是一個簡化版本。

// if "SelectedIndex" is one of the values in the array provided 
if ($.inArray(SelectedIndex, [2,5,7])) { 
     $("#DomContainer").html("<label>Day:</label>&nbsp;"+inject_dropdown(28)); 
}  

// Creates and returns a new drop-down based on the "length" provided 
function inject_dropdown(length){ 
    var selectHTML = "<select>"; 
    for(i=1; i<=length; i++){ 
     selectHTML += "<option value='" + i + "'>" + i + "</option>" 
    } 
    selectHTML += "</select>" 
    return selectHTML; 
} 

$('#DomContainer')選擇器替換爲任何標識您希望新下拉列表出現的位置的選擇器。

相關問題