2012-07-03 62 views
1

我已經創建了一個簡單的下拉列表,該列表從上一個下拉列表填充。全選在PHP下拉列表中

我如何使所有選擇?

下面提到的是JavaScript填充它的代碼。

function OnClkAddButtonServer(form) 
{ 
    var selObj = document.getElementById('List1'); 
    var selObj2 = document.getElementById('List2'); 

     var i; 
     var count = selObj2.options.length; 

     for (i=0;i<selObj.options.length;i++) 
     { 
     if (selObj.options[i].selected) 
     { 
       var option = new Option(selObj.options[i].text,selObj.options[i].value); 
       option.title = selObj.options[i].text; 
       selObj2.options[count] = option; 
       count=count+1; 
       selObj.options[i] = null; 
       i--; 
     } 
     } 
} 

在此先感謝

+1

也許你應該考慮修改你的問題。 PHP與你的問題有什麼關係?似乎所有你想要做的是選擇列表中的所有項目,這是一個HTML問題。 –

+0

你嘗試過'var option = new Option(...); option.selected = true;'? –

回答

1

如果您正試圖在一個列表中的所有選項被選中,你需要的HTML看起來像這樣。

<select multiple="multiple"> 
    <option selected="selected">Volvo</option> 
    <option selected="selected">Saab</option> 
    <option selected="selected">Mercedes</option> 
    <option selected="selected">Audi</option> 
</select> 

要選擇一個新創建的選項,您可以使用改變HTML屬性的Javascript方法,如下所示。

document.getElementById("idElement").setAttribute("class", "className"); 

本示例要求您知道元素的ID,但如果以其他方式引用元素,則可以跳過浪費的查找。

+0

嗨,我明白,在HTML中,你可以使用selected =「selected」。但問題是我的下拉列表是空的。它由上面提到的javascript按鈕填充。我無法提交我的表單,因爲新填充的下拉列表沒有任何選擇。 – smallcat31

+0

我有一個按鈕,它調用頂部的JavaScript來填充這個新的下拉列表。 – smallcat31

+0

已更新我的答案,以包含更改屬性的示例。 –

0

首先,如果您想要選擇所有下拉選項,則需要確保選擇類型爲多個。

例如,假設selObj2指<select>標籤(<select id = "List2">),你會想「多元」屬性添加到選擇標籤:

<select id = "List2" multiple = "multiple"> 

如果你想這樣做的JS,你可以插入行:

selObj2.setAttribute("multiple", "multiple"); 

,或者

selObj2.multiple = true; 

這當然假設selObj2是一個<select>標記。但是,您必須啓用多個選項才能選擇多個選項。一旦你啓用了這個屬性,你可以進入下一步...

現在,假設selObj2.options引用了你想要選擇的單個選項,你可以在JS中執行此操作該函數的結束括號前右OnClkAddButtonServer)添加此塊:

for (var i=0; i<selObj2.options.length; i++) 
{ 
    selObj2.options[i].setAttribute("selected", true); 
    // or, 
    // selObj2.options[i].selected = true; 
} 

此外,通知在for循環,我用:

var i=0; 

這是因爲我們正在創建的變量i本地循環的範圍,這意味着如果我們想使用我在循環的後面,這兩個實例不會發生衝突。如果你沒有使用關鍵字「var」,那麼變量i將在整個腳本的任何地方被訪問(創建一個全局變量)。將變量保持在本地是個好習慣,而且由於人們往往會在這些循環中經常使用i或x作爲計數器,所以爲避免任何令人討厭的意外,採取謹慎措施是很有必要的。