选择2如何在ajax调用之前添加值

Select2 how to add values before ajax call

本文关键字:添加 调用 ajax 选择      更新时间:2023-09-26

我有下一个选择2:

siteSelector = $('#siteSelector').select2(
{
   placeholder : "Select site ...",
   ajax : {
      type : 'GET',
      dataType : 'json',
      contentType : 'application/json',
      url : {url_of_my_rest_service},
      data : function(term, page) {
         return {
            startswith : term,
         };
      },
      results : function(data, page) {
         var items = data.content;
         var res = {
            results : []
         }, i;
         for (i = 0; i < items.length; i++) {
         res.results.push({
            id : items[i].id,
            text : items[i].name
         });
      }
      return res;
   }
},
minimumInputLength : 3
});

当我按下下拉按钮时,我该如何做到这一点,一些值已经预加载在那里?

最好的方法是在调用 ajax 之前将数据插入 DOM 中。

$(document).ready(function () {
//as many as you need, using loop or manually
$('#siteSelector').append("<option value='value1'>Value 1</option>")
//only then start select2 using the function you wrote
//siteSelector = $('#siteSelector').select2(......
})

据我所知,select2 中的数据属性在 ajax 调用中效果不佳(或根本不起作用)。此方法将起作用。