Select2 Ajax:编辑模式下的预选数据

时间:2018-08-10 08:08:18

标签: javascript jquery laravel jquery-select2

我要在 Laravel 上创建用户个人资料页面,并使用 select2 组件过滤大量项目。

我有一个基于Ajax的select2。当您在/create页上时很好,但是当我在/edit/1页上时,我需要在其中选择值。

$('.search-filter-ajax').select2({
                    width: '100%',
                    minimumInputLength: 3,
                    placeholder: "Search...",
                    ajax: {
                        url: '/api/listing/search/',
                        data: function (term) {

                            return {
                                data: term.term
                            };
                        },
                        processResults: function (data) {
                            return {
                                results: $.map(data, function (item) {
                                    return {
                                        text: item.name,
                                        search_from: item.name,
                                        model: 'some_model',
                                        id: item.id
                                    }
                                })
                            };
                        },
                        dataType: 'json',
                        type: "GET",
                        delay: 250,
                    },

                });

我尝试使用initSelection函数,但是没有运气,因为当我需要真正的select2组件时,它仅创建<option value="1"> something </option>文本元素。

initSelection: function (element, callback) {
            var id = $(element).data('select-id');
            var text = $(element).data('select-text');
            callback({ id: id, text: text });
        },

如何在页面加载时在select2中有一个有效的预选选项,但仍然有机会通过onChange触发ajax调用?

1 个答案:

答案 0 :(得分:1)

好吧,您可以尝试使用自己的逻辑来生成选择选项,例如

$.ajax().then((res)=>{
  $('#select').html('');
    res.data.forEach((item)={$('#select').append($('option').text(item.text).value(item.value);)})
})