Select2 AJAX 所选值未出现在框中

Select2 AJAX selected value is not appearing int he box

Select2 - 版本 4.0.0-beta.3

我正在努力将我的 Select2 从 3 升级到 4.0。我在使用 Select2 处理 ajax 请求时遇到问题。 我有以下领域。

HTML

<input action="load_users" id="id_pic_credits" name="pic_credits" type="hidden">

JS

$(document).ready(function () {
    $("*[action='load_users']").select2({
        allowClear: true,
        width: '100%',
        multiple: false,
        minimumInputLength: 1,
        "ajax": {
            "url": _url,
            delay: 250,
            dataType: "json",
            data: function (search, page) {
                return search
            },
            processResults: function (data, page) {
                // parse the results into the format expected by Select2.
                // since we are using custom formatting functions we do not need to
                // alter the remote JSON data
                return {
                    results: data.items
                };

            },
            cache: true

        }
    });
});

HTML 结果

服务器响应

List of dicts.

[{'id':1, 'text':'Ray of Peace'},{'id':2, 'text':'Ray of Peace2'}]

HTML 结果

问题

当我点击任何记录时;我看不到该值是否实际上正在获取 select。 当下拉菜单关闭时;我没有看到 selected 值。 但是,HTML 字段的值已更改;但是我看不到结果。

据我了解,您不应再使用隐藏的输入元素来支持 Select2 控件。相反,您应该始终使用 <select> 元素。

将您的 html 更改为:

<select action="load_users" id="id_pic_credits" name="pic_credits"></select>

请参阅 Select2 4.0 Announcement 页面上的 "No more hidden input tags" 部分。

jsfiddle