私は 3.5 -> 4.0 へのアップグレードをもう一度行っており、このユースケースは「ほぼ」以前と同じように機能しています。私が今行き詰まっているのは、特定のオプションを ajax 結果リストに常に追加する方法です。
これが私が今持っているものです:
html:
<select id="vedit-filter" name="settings[filter]" class="form-control select2">
<option value="default" selected="">default</option>
</select>
js:
$("#vedit-filter").select2({
placeholder: "Select or enter application...",
allowClear: true,
multiple: false,
tags: true,
ajax: {
dataType: 'json',
delay: 1000,
type: 'post',
url: '/process/get_application_list.php',
data: function (term, page) {
return {
term: term, // search term
page_limit: 25, // page size
page: page // page number
};
},
results: function (data, page) {
var more = (page * 25) < data.total; // whether or not there are more results available
return {
results: data.results,
more: more
};
}
}
});
これにより、最初に選択されたオプションとして「デフォルト」がロードされます。ユーザーがこれを変更すると、それはなくなります。必要に応じて、最初の選択に戻す方法が必要です。ajax から返された結果にオプションとして含める唯一の方法はありますか? または、js側でこれを行う方法はありますか?
アップデート:
デフォルトの選択は常に動的ですが、この例では「デフォルト」の値/名前を使用しています。
<select id="vedit-filter" name="settings[filter]" class="form-control select2">
<option value="default" selected="">default</option>
</select>
次にjsで:
var default_filter = $("#vedit-filter").val(); //get the default loaded from the html
placeholder: {
id: default_filter, // or whatever the placeholder value is
text: default_filter // the text to display as the placeholder
},