Select2タグリストを次のように初期化しています。
<input type="text" name="users" value="" id="users" class="span3" />
$("#users").select2({
tags : [
{'id':1, 'text':'Ben'},
{'id':22, 'text':'Andrea'},
{'id':23, 'text':'Tim'},
{'id':7, 'text':'Matt'}
]
,tokenSeparators : [",", " "]
}).on('change', function(event){
console.log(event.val.toString());
});
...そもそも入力ボックスが空の場合、これは扱います。名前で人を選択すると、データベースに送り返すことができるIDの単純な配列が返されます。
ただし、既存の選択でこのリストを初期化する方法について混乱しています。ベンとアンドレアがすでに選択されているページをロードするとします。
<input type="text" name="users" value="Ben, Andrea" id="users" class="span3" />
Select2にはinitSelection()メソッドがあることがわかりますが、どのように使用するかわかりません。明らかに、上記の例は間違っています。IDを個人名と一緒に渡していないためですが、そのデータをどのように渡す必要がありますか?そして、それからSelect2を正しく初期化するために、initSelectionコールバック関数の実装はどのように見えるべきですか?