2010-04-12 65 views
2

我在我的JSP網頁在兩次下拉列表的JavaScript +添加項目到下拉

1. lstA 
    test1 
    test2 
    test3 
    test4 

2. lstB 

現在的LSTA的選擇,我想填充LSTA的所有項目到LSTB除了選擇之一,也是內容lstA應該保持不變。

我怎樣才能做到這一點?

我試圖做到這一點,但是從lstA中刪除了一些隨機物品,這是相當有線的。

+0

JSP或Javascript?在後一種情況下,你會介意發佈一些HTML/JS代碼。 – 2010-04-12 15:58:10

回答

8

你幾乎在你的答案中有正確的答案。

需要注意的事項:在添加之前,您需要清除客戶端列表,否則您將最終獲得越來越多的項目,並且需要在將其添加到客戶端列表之前克隆該選項,因爲節點任何時候都只能在1位父母中存在。

這已經過測試,對我的作品:

<html><body> 
<script language="javascript"> 
function populateClient() { 
    var serverList = document.getElementById("dropdown1"); 
    var clientList = document.getElementById("dropdown2"); 

    clientList.options.length = 0; // this removes existing options 

    for (var i = 0; i <= serverList.options.length; i++) { 
     if (!serverList.options[i].selected) { 
      clientList.options.add(serverList.options[i].cloneNode(true)); // cloneNode here 
     } 
    } 
} 
</script> 

<select id="dropdown1" onchange="populateClient()"> 
    <option value="value1">value1</option> 
    <option value="value2">value2</option> 
    <option value="value3">value3</option> 
    <option value="value4">value4</option> 
    <option value="value5">value5</option> 
</select> 
<select id="dropdown2"> 
</select> 
</body></html> 
0
function populateClient(selectItem, clientItem) { 
      var serverList = selectItem; 
      for(var i = 1; i <= serverList.options.length; i++) { 
       if (!serverList.options[i].selected) 
        clientItem.options.add(serverList.options[i]); 
      } 
     } 

其中,selectItem和clientItem是下拉式。

當我這樣做時,一些數據被隨機填充到clientItem中,並且selectItem中的一些項目被刪除。

0

試試這個

<script type="text/javascript"> 
    function AddItem() 
    { 
     // Create an Option object  
     var opt = document.createElement("option");   

     // Assign text and value to Option object 
     opt.text = "New Value"; 
     opt.value = "New Value"; 

     // Add an Option object to Drop Down List Box 
     document.getElementById('<%=DropDownList.ClientID%>').options.add(opt); 
    } 
<script /> 

值將追加到下拉列表中。

相關問題