我将以下数据输入到select2
data = [{
"id": "all",
"text": "All",
"children": [{
"id": "item1",
"text": "item1"
}, {
"id": "item2",
"text": "item2"
}]
}];
我将select2初始化为:
$(parent).select2({"data":data});
现在选择值" item1 ",我做了
$(parent).select2("val",["item1"]);
然而,不是价值" item1 "价值" 所有"正在被选中。如何选择值item1?
答案 0 :(得分:7)
要使用select2
设置所选值,您应该使用:
$(parent).val("item1").trigger("change");
您应该直接在底层元素上调用.val。如果你需要第二个参数(triggerChange),你也应该 在元素上调用.trigger(“change”)。
$("select").val("1"); // instead of $("select").select2("val", "1");
答案 1 :(得分:1)
JSFiddle其中选择了item1。
JS:
var data = [{
id: 'all',
text: 'All',
children: [{
id: 'item1',
text: 'item1'
}, {
id: 'item2',
text: 'item2'
}]
}];
$('.js-example-data-array').select2({data:data});
$('.js-example-data-array').select2('val',['item1']);
HTML:
<select class="js-example-data-array">
</select>
答案 2 :(得分:0)
我不确定你是否意味着在开始时选择了“全部”值,或者如果你想通过代码选择“item1”而它不起作用。我觉得奇怪的是“全部”被选为值,因为它应该被视为一个类别,即使添加
validates :password, presence: true, confirmation: true, length: { minimum: 3}
它不会为我选择“全部”。如果我添加
$(".select2-text").select2("val",["item1"]);
它将为我选择“item2”(这意味着选择项目的方法有效,尽管这不是最好的方式,如Lelio Faieta的答案中所述)
如果我添加
$(".select2-text").select2("val",["item2"]);
它不会为我选择“全部”,它只会显示一个空白选择。所以我认为你的代码肯定存在问题,因为在一个干净的页面中似乎没有办法选择“全部”
您能否向我们展示整个代码,包括您网页的html(至少与选择相关的部分)。我试过这个(请参阅这里的plunker:http://plnkr.co/edit/m6pFUt?p=preview)
$(".select2-text").select2("val",["all"]);
它从选择的item1开始,而“All”被视为一个类别。所以也许只是因为你的代码/ HTML出了问题 您使用的是哪个版本的Select2?我正在使用2-4.0.0
答案 3 :(得分:0)
我试图让this demo告诉你它有效。该演示使用select
标记作为空的和现有select
元素的选择器。实际上,parent
我不知道你的意思是什么:
<select>
</select>
<script>
data = [{
"id": "all",
"text": "All",
"children": [{
"id": "item1",
"text": "item1"
}, {
"id": "item2",
"text": "item2"
}]
}];
$('select').select2({
"data": data
});
$('select').select2("val", ["item2"]);
</script>