2013-04-20 123 views
0

選項我有一個選擇的形式,看起來有點像這樣:如何選擇通過jQuery

<select multiple="multiple" id="id_color_id" name="color_id""> 
<option value="1">Red</option> 
<option value="2">Blue</option> 
<option value="3">Brown</option> 
</select> 

我想要做的是選擇通過JavaScript以上的項目。這實際上是隱藏表單的一部分,所以我試圖做的是利用表單的序列化部分。我認爲在serialize之後破解並添加它也會更容易,但我也想取消選擇已經選擇的任何選項。

所以兩個問題:

  1. 如何選擇通過JavaScript選項。我所知道的只有「紅色」,「藍色」或「布朗」。我也有查閱字典,可以讓我的價值觀以及。

  2. 如何取消選擇之前選擇上述選項之前的所有選項。

這涉及到:Selecting options in a select via JQuery

回答

2

本地JavaScript:

var textToFind = 'Red'; 

var dd = document.getElementById('id_color_id'); 
for (var i = 0; i < dd.options.length; i++) { 
    if (dd.options[i].text === textToFind) { 
     dd.selectedIndex = i; 
     break; 
    } 
} 

或使用jQuery:

$('#id_color_id option:contains('Blue')').prop('selected',true); 

與變量:

var blue = "Blue"; 
$('#id_color_id option:contains(' + blue + ')').prop('selected',true); 

並取消所有的選擇方案:

本地JavaScript:

var elements = document.getElementById("id_color_id").options; 

    for(var i = 0; i < elements.length; i++){ 
     if(elements[i].selected) 
     elements[i].selected = false; 
    } 

的jQuery:

$("#id_color_id option:selected").removeAttr("selected"); 
+0

在上面的例子中,對於jquery,如果「blue」是一個變量,如何得到正確的選項? – 2013-04-20 22:02:29

+0

$('#id_color_id option:contains('+ blue +')')。prop('selected',true); 添加到上面的解決方案。 – KingKongFrog 2013-04-20 23:27:46

0

要選擇一個選項,通過它的內容(考慮你貼什麼就是什麼你有

$("#id_color_id option:contains('Red')").prop('selected',true); 

jsFiddle Demo

0

可以使用.val()方法上的選擇框中設置的值。運行此操作將重置之前選定的任何值,因此您無需執行任何特定操作來完成該部分。您也可以使用數組來選擇多個值,這可能很有趣,因爲您正在使用多重選擇。

$("#id_color_id").val(['1','2']);