2012-04-02 65 views
1

我需要改變選擇的下拉選擇的值。更改選擇當使用點擊表

默認情況下,它是在VIC上選擇的,但是當我點擊NSW中的地址時,我想在下拉菜單中選擇NSW,唯一的問題是值是1-7而不是名稱州。

我嘗試以下

$( 「選擇」)VAL( 'NSW')變化()。

和許多包括觸發器,更

回答

0

好吧,我假設你有HTML,看起來像這樣:

Please select a state: 
<ul> 
    <li>New York</li> 
    <li>Pennsylvania</li> 
    <li>Ohio</li> 
    <li>California</li> 
    <li>Washington</li> 
    <li>Alaska</li> 
    <li>Hawaii</li> 
</ul> 

<select name="state"> 
    <option value="1">New York</option> 
    <option value="2">Pennsylvania</option> 
    <option value="3">Ohio</option> 
    <option value="4">California</option> 
    <option value="5">Washington</option> 
    <option value="6">Alaska</option> 
    <option value="7">Hawaii</option> 
</select> 

當你點擊加州li,要選擇第四個選項?足夠簡單:只需要​​創建一個簡單的數組的索引映射到名稱:

var map = [null, "New York", "Pennsylvania", "Ohio", "California", 
      "Washington", "Alaska", "Hawaii"]; 

然後,使用$.inArray功能來查找對應於一個狀態指數:

var index = $.inArray($(this).html(), map); 

然後,將選擇與索引選項,你才發現:

$("select").val(index); 

jsFiddle

+0

好,不過如果他們不是在一個數組 – RussellHarrower 2012-04-02 05:09:06

1

使用此功能。傳遞兩個參數,第一個組合名稱和第二個你想要選擇的值。當您在新南威爾士州的地址電話點擊該功能

function setSelectedIndexByTextValue(comboName, comboValue) { 
    var tComboName = document.getElementById(comboName); 
    for (i = 0; i < tComboName.options.length; i++) { 
     if (parseInt(tComboName.options[i].text) == comboValue) { 
      tComboName.options[i].selected = true; 
      break; 
     } 
    } 
} 
相關問題