2010-01-26 97 views
0

我有一個選擇框,它填充了所有可用的選項。當用戶在我的應用程序中單擊一條記錄時,我得到一個xml響應,其中包含該記錄的選項值。我想使用javascript來爲選擇框中的特定選項設置選定的索引,而無需重新加載選擇框。有沒有簡單的方法根據選項的值或名稱找到選項的索引?然後,我可以將該選項設置爲選定的索引。如何通過使用Javascript的選項的值在選擇框中選擇一個選項?

回答

3

我第二次託比的答案。不過,如果你不能使用現有的庫由於某種原因,這是很容易在普通的JavaScript做:

function selectByValue(el, value) { 
    for (var i=0, len=options.length; i<len; i++) { 
     if (el.options[i].value == value) { 
      el.selectedIndex = i; 
      break; 
     } 
    } 
} 

如果您想使用的選項的文字,而不是與.text更換.value。我假設你的意思是「文本」,因爲選擇選項沒有「名稱」屬性。

+1

謝謝!這工作。作爲一個方面說明...我錯誤地發現,你可以通過簡單地做到這一點來避免整個過程: document.getElementById('my_selector')。value = record_value; 這似乎選擇適當的記錄,根本不需要找到索引。 IE可能會炸燬,但它可以在我嘗試過的所有非FUBARed瀏覽器中使用。 – user77413 2010-01-27 00:02:20

+0

你知道我有一個奇怪的預感,但我沒有嘗試。雖然很高興知道。 – elo80ka 2010-01-27 05:26:05

+1

dropdownEl.value =值也適用於IE。 – einarq 2010-01-27 20:50:18

0

我建議看看像jQuery或Prototype的JS庫。他們使這種事容易。

1

這將是非常接近這樣的:

function find_index(options, value) { 
    for (var i=0; i<options.length; i++) { 
     if (options[i].value == value) { 
      return i; 
     } 
    } 
    return -1 
} 

function set_selected_option(select_element, value) { 
    var index = find_index(select_element.options, value) 
    if (index != -1){ 
     select_element.selectedIndex = index; 
    } 
} 
相關問題