使用带有占位符的 select2.js 我不能 select 第一项

With select2.js with a placeholder I can't select the first item

我有一个 <select> 列表,我正在使用 select2.js 设置样式。在大多数情况下,一切正常,但是,当使用占位符时,用户会下拉列表,然后尝试 select 他们无法做到的列表中的第一项。如果用户 selects 除了第一项之外的任何项目然后返回并且 selects 第一项工作正常。就好像第一项已经 selected(它已经突出显示)但不是真的(因为列表的值为空并且显示了占位符)。

HTML

    <select id="selectBox"></select>

绑定JS

$("#selectBox").select2({
    placeholder: "Select an item",
    width: '267px' });

填充 JS

var showThings = function() {

    var $selectBox = $('#selectBox');

    $selectBox.empty();

    blah.executeRequest('getThings', function(result) {

            $(result.sort(SortByName)).each(function(index, user) {

                var asOption = [];

                asOption.push('<option value ="' + user['id'] + '">' +
                    user['name'] + '</option>');


                if (asOption.length > 0) {
                    $selectBox.append(asOption.join('\n'));
                }
            });
        }
    );
};

"executeRequest" 只是从一些 Java 代码中获取数据,填充列表工作正常,但我想我会包含代码以便可以看到列表数据的来源来自.

如果有人对此有任何想法,或者已经经历过并且知道如何解决它,我将不胜感激。

谢谢,

克里斯

在推送 "real" 值之前,尝试在 select 元素的开头添加一个空的 <option></option>

更新:我给你写了一个JSFiddle example