2011-08-10 107 views
2

如果我有更改文本在下拉

<select name="id[3]" id="attrib-3"> 
    <option value="11">None</option> 
    <option value="13">White ($4.72)</option> 
    <option value="32">Black ($5.90)</option> 
    <option value="12">Blue ($5.90)</option> 
</select> 

,我想改變基於另一個下拉價格,我有哪些選擇? (假設我知道在這種情況下,選項13應該是5.72,選項32應該是6.90,選項12應該是6.90)。我的第一個下拉觸發器上有onchange,我知道如何到達attrib-3,但我不知道如何更改下拉列表的文本字段。

回答

5

您可以遍歷所有的選項:

for(var i = 0, l = select.options.length; i < l; i++) { 
    var option = select.options[i]; 
    if(option.value == "...") { 
     option.innerHTML = "..."; 
    } 
} 

我會把在函數,並通過你搜索一個值,更換,或地圖。喜歡的東西:

setOptionText(select, 'value', 'text'); 
// or 
setOptionText(select, {'value': 'text', 'value': 'text', ...}); 

參考HTMLSelectElement

+0

而選擇是選擇=的document.getElementById( 「ATTRIB-3」); –

+0

@ Scott:確實如此。 –

1

Felix的解決方案是卓有成效的,而且是純JavaScript,但你會發現它更容易使用jQuery。它具有諸如此類的功能的快捷功能。例如:

$('option[value="13"]').text('some text'); 

這是一個fiddle演示這個。

請注意,使用jQuery意味着頁面將需要加載庫。這可能會影響性能。根據我的經驗,通常jQuery的性能含義是不值得擔心的。它還具有允許您編寫較少JS以實現相同目標的優點,如果您有大量腳本,可能實際上會提高性能。

+0

+1。在某些時候,我應該停止做一個關節頭並找出JQuery。 –

+0

@Scott,這非常簡單,爲我節省了大量的開發時間。我會推薦[jQuery入門](http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery)。 – Spycho

0

我使用條目「(Ohne)」查找所有下拉列表的方法,該條目是lookupfields下拉列表的SharePoint默認值。它會找到所有下拉值「(Ohne)」,並將它們重命名爲「Bittewählen」,這意味着請用英文選擇。 快速和骯髒的放入Web /列表/ 列表名稱 /NewForm.aspx與SharePoint設計器。

也許有用一些髒的解決方案:

<script language="javascript" type="text/javascript"> 
var dropDowns = document.getElementsByTagName('select'); 
for (var i = 0; i < dropDowns.length; i++) { 
    try{ 
    if (dropDowns[i].options[0].text == '(Ohne)') 
    { 
     dropDowns[i].options[0].text = 'Bitte wählen'; 
    } 
    } 
    catch(err) 
    { 
     // catches array exceptions occurred by <select> tags without <options> 
    } 
} 
</script> 

相關問題