如何使用AJAX,Select2和“ val”功能手动选择项目

时间:2018-09-24 01:54:54

标签: javascript jquery jquery-select2 jquery-select2-4

试图弄清楚如何在页面首次加载后(以及从ajax api调用加载数据之后)更改select2框的选定项

我尝试使用下面的方法,但是在ajax数据加载后我无法让他们调用吗?

$series2.val('2');
$series2.trigger('change');

文档说它不能使用val函数来完成(请参见此处https://select2.org/programmatic-control/add-select-clear-items),我不希望使用提供“选定”值的自定义API调用来完成此操作-因为这不起作用带有模板。

这不是Select2 auto trigger event change

的副本
    var $make2 = $(".make2");
    var $series2 = $(".series2");
    $make2.select2().on('change', function() {
        $series2.empty();
        if ($make2.val() !== null) {
            $.ajax({
                url: "{{ url('/') }}" + "/api/series/" + $make2.val(),
                type: 'GET',
                dataType: 'json',
                async: true,
                success: function(data) {
                    $series2.select2({
                        data: data,
                        templateSelection: function(result) {
                            return result['text'];
                        },
                        templateResult: function(result) {
                            if (!result['id']) {
                                return result['text'];
                            };
                            var final =
                                '<div>' +
                                    '<strong>' + result['text'] + '</strong>' +
                                    '<ul class="list-unstyled">' +
                                        '<li><em>' + result['make'] + '</em></li>' +
                                        '<li><em>' + result['category'] + '</em></li>' +
                                    '</ul>' +
                                '</div>';
                            return final;
                        },
                        escapeMarkup: function(result) {
                            return result;
                        },
                    });
                }
            });
        }
    }).trigger('change');
});

0 个答案:

没有答案