Tôi không chắc chắn nếu bạn có nghĩa là giá trị "Tất cả" được chọn khi khởi động hoặc nếu bạn muốn chọn "item1" bởi mã và nó không hoạt động. Tôi thấy lạ rằng "Tất cả" được chọn làm giá trị vì nó được coi là danh mục, thậm chí bằng cách thêm
$(".select2-text").select2("val",["item1"]);
nó sẽ không chọn "Tất cả" cho tôi. Nếu tôi thêm
$(".select2-text").select2("val",["item2"]);
Nó sẽ chọn "ITEM2" đối với tôi (có nghĩa là phương pháp để lựa chọn các công trình hạng mục, mặc dù nó không phải là cách tốt nhất, như đã nêu trong trả lời Lelio Faieta của)
nếu tôi thêm
$(".select2-text").select2("val",["all"]);
nó sẽ không chọn "Tất cả" cho tôi, nó sẽ chỉ hiển thị cho tôi một lựa chọn trống. Vì vậy, tôi nghĩ rằng phải có vấn đề với mã của bạn vì trong một trang sạch sẽ không có cách nào để chọn "Tất cả"
Bạn có thể hiển thị cho chúng tôi toàn bộ mã, bao gồm cả html của trang của bạn (ít nhất là phần liên quan đến lựa chọn). Tôi đã cố gắng này (xem plunker đây: http://plnkr.co/edit/m6pFUt?p=preview)
<script>
$(document).ready(function() {
data = [{
"id": "all",
"text": "All",
"children": [{
"id": "item1",
"text": "item1"
}, {
"id": "item2",
"text": "item2"
}]
}];
$(".select2-text").select2({
"data": data
});
});
</script>
<select class="select2-text"></select>
Và nó bắt đầu với item1 chọn, trong khi "Tất cả" được coi là một danh mục. Vì vậy, có lẽ nó chỉ là bởi vì một cái gì đó là sai trong mã của bạn/HTML.
Bạn đang sử dụng phiên bản Select2 nào? Tôi đang sử dụng 2-4.0.0
Tôi nghĩ rằng nó có cái gì để làm với thực tế là item1 là đối tượng trẻ em, và nó không biết –
ooh ... nhưng làm thế nào để chọn đối tượng con? nhờ .. –
Tôi tìm thấy [fiddle] này (http://jsfiddle.net/platypusman/xDUUg/) có thể giúp bạn, bạn dường như có cấu trúc đối tượng tương tự –