2013-04-20 158 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']);