2011-05-26 189 views
0

我有一個表格,其中有一個與字段players相關聯的選擇列表。默認情況下選擇選擇列表框中的所有選項 - javascript

要填充列表框,用戶單擊表單上的按鈕以顯示彈出框,然後從該彈出框中選擇玩家的姓名,然後單擊彈出框上的另一個按鈕,關閉彈出框並在列表框中顯示所選值。

默認情況下,我把selected="true"放在select標籤中,以便當用戶保存表單時,列表框中的值被保存。

<select size=5 id="sub_player_ids" name="sub[player_ids][]" multiple selected="true"> 

上面的代碼選擇選擇框中的所有選項,並且這些選項以藍色突出顯示。

但是,用戶可能會因錯誤而在玩家的選擇框中取消選擇一個選項。

我想在選擇框中的所有選項默認選擇 - 無論是高亮還是不

有沒有一種方法默認保存表單時選擇的選擇框的所有選項?

非常感謝您提供的任何建議。

乾杯

+0

您應該發佈您的JavaScript。此外,如果您的代碼正在檢查select標籤上的「selected」值,則應該使用另一個屬性名稱,因爲「selected」是option標籤的屬性,其有效值爲「selected」(所以應該選擇它=「selected」) - 以非標準方式使用標準屬性令人困惑。 – squidbe 2011-05-26 16:52:10

回答

1

你知道select中的值嗎?您可以遍歷選擇並將每個選項selected設置爲true。

for (var i = 0, children = select.childNodes, l = children.length; i < l; i++) { 
    if (children[i].tagName === "OPTION") children[i].selected = true; 
} 

小提琴使用的事實是Chrome/IE7 +應該定義window.select作爲通過ID選擇在DOM中找到的元素。如果您在Firefox中運行這個,你需要var select = document.getElementById('select');

http://jsfiddle.net/robert/VKF4E/

1

這是一個一行,如果你使用jQuery。

$("#sub_player_ids option").attr("selected", "selected"); 

說明:在jQuery選擇語法使用CSS樣式,以確定「選擇」(列表框)使用「#ID」模式,然後用「選項」下,它選擇內,在指定的所有選項元件。 「attr」函數將爲每個返回的元素添加一個屬性。在這種情況下,我們添加「selected」屬性並將該值設置爲「selected」

相關問題