Select2要素にJSON配列を入力しようとしています。しかし、私はそれを得ることができません。
次の配列があります:
data = [{"id":"Foo","text":"Foo"},{"id":"Bar","text":"Bar"}]
そして、次のようにselect2を初期化します。
$("#selectElement").select2();
次のコードを使用してデータを入力します。
$('#selectElement').select2('data', data, true);
しかし、動作せず、理由はわかりません。誰かが私を助けることができますか?
編集:select2の初期化後に入力する必要があります(AJAXからJSONを受け取ります)
私の意図は、質問のselect2に他のselect2のAJAX検索のJSONを入力することです。
移入を除いてすべてうまく機能します(最初のformatSelectiomメソッドでこのJSONをうまく取得しますが、2番目のselect2にこれを移入するためにできることはわかりません)
あなたのコードと select2 のコードにはいくつかの違いがあります
あなたのデータ:
var data = [{"id":"Foo","text":"Foo"},{"id":"Bar","text":"Bar"}];
する必要があります:
var data = [{id:"Foo", text:"Foo"},{id:"Bar", text:"Bar"}]
あなたの人口コード:
$('#selectElement').select2('data', data, true);
する必要があります:
$('#selectElement').select2({data: data});
Select2の例
var data = [
{ id: 0, text: 'enhancement' },
{ id: 1, text: 'bug' },
{ id: 2, text: 'duplicate' },
{ id: 3, text: 'invalid' },
{ id: 4, text: 'wontfix' }
];
$(".js-example-data-array").select2({
data: data
});
<select class="js-example-data-array"></select>
$('#selectElement').select2({
minimumInputLength: 1,
ajax: {
url: '@Url.Action("Search", "Home")',
dataType: 'json',
data: function(params) {
return {
ad: params.term
};
},
processResults: function(data) {
return {
results: $.map(data, function(obj) {
return { id: obj.Id, text: obj.Ad + " " + obj.Soyad };
})
};
}
});
Select2リストに同様の質問を投稿してから、壁に頭をぶつけて戻ってきました。これが私が思いついたものです:(「破壊」が助けになったヒントでした)。最初に選択を空にしてからリセットします。
$("#id_category").on('change', function(){
var cat = $(this).val();
var url = '/breeds/lookup/?q='+cat;
$.get(url, function(d){
var idb = $("#id_breed").empty();
idb.select2({data: d});
}, "json");
});
デフォルトでプリロードされたJSONを使用してドロップダウンを表示しようとしている場合、フィールドをクリックした瞬間に、1文字も入力せずに、データが入力されたドロップダウンが表示されることを期待します。
minimumInputLength:
チャームのように機能します。それが私のものだったので、それがあなたの問題を解決したことを願っています:)