2017-03-08 71 views
1
<select id="dropList" multiple="multiple"> 
    <option value="Carbon">Carbon</option> 
    <option value="Stainless">Stainless</option> 
    <option value="Alloy">Alloy</option> 
</select> 

我在多选模式下使用Select2。我想用jquery在标签框中显示一个或两个或全部三个选项。在搜索关于这个主题的所有帖子整整一个早上之后,我所取得的最好成绩是使用以下方法一次显示一个选项!如何在多个Select2标记框中显示特定选项

$('#dropList').val("Stainless").trigger('change.select2'); 

但是,如果用户已经选择了说,“碳”,我希望能够在标签框中显示说,“不锈钢”旁边的“碳”。我不想'碳被替换。任何帮助非常感谢。

+0

您的chage.select2函数的外观如何? –

+0

对不起,也许我不清楚。整个Select2下拉菜单完美无缺。我问的问题是如何使用jquery覆盖用户的选择,所以我可以在标记框中显示一个或多个未选定的选项。 – Silverburch

+0

让我帮你解决问题,你想有多个选项“预选”? –

回答

1

仍然可以使用的VAL()使用阵列(它为SELECT2倍数)

$('#dropList').val(["Stainless","Carbon"]).trigger('change.select2'); 

看看http://jsfiddle.net/a7c20eon/一个例子(它设置一个初始值,然后添加额外的值到选择)

//Initializing a value (previous selection) 
$("#dropList").select2(); 
$('#dropList').val("Carbon").trigger('change.select2'); 

//Get current value (is an array ['Carbon']) 
var selection=($('#dropList').val()); 

//Add Stainless to selection (if not exists) 
if (selection.indexOf("Stainless")==-1){ 
    selection.push("Stainless"); 
} 

//set the array values 
$('#dropList').val(selection).trigger('change.select2'); 
+0

这工作@Igor,真是令人印象深刻。有没有什么方法的代码可以比这更短? – Silverburch

+0

请参阅http://jsfiddle.net/a7c20eon/2/。如果您在已存在的选择中推送一个值,它只会设置唯一值(它不需要检查是否存在) –

+0

辉煌,非常感谢您的帮助。 – Silverburch

相关问题