始终显示占位符select2



我想构建一个选择器,它显示一个;检查一个或多个或选项";占位符,并且在选择1-N选项后,占位符仍将显示,而不是选中的结果。

简而言之,无论是否选中0、1或N选项,组件都应始终显示占位符。

我一直在搜索,但找不到任何方法:

Html:

<select multiple id="e1" style="width:300px">
<option value="AL">Alabama</option>
<option value="Am">Amalapuram</option>
<option value="An">Anakapalli</option>
<option value="Ak">Akkayapalem</option>
<option value="WY">Wyoming</option>
</select>

Js

$('select').select2({
placeholder: "Select a state",
templateSelection: function (data) {
return 'Select a state';
}
});

http://jsfiddle.net/91nqgkuy/2/

最后,我选择覆盖结果模板并插入所需的文本。

// Set the default option.
$(select, context).each(function (e) {
setTemplateResults($(this));
});
// Override select2 default work flow.
$(select, context).on('select2:select select2:unselect', function (evt) {
setTemplateResults($(this));
});
// Method.
function setTemplateResults(selector) {
let container = selector.siblings('span.select2').find('ul')
container.html('<li>' + Drupal.t('Select category(ies)') + '</li>');
}

最新更新