[英]How make select2 placeholder for search input
我有同样的需求,我最终为Select2
插件编写了一个小扩展。
插件有一个新选项searchInputPlaceholder
,以便为“搜索”输入字段设置占位符。
在插件的 js 文件后面添加以下代码:
(function($) {
var Defaults = $.fn.select2.amd.require('select2/defaults');
$.extend(Defaults.defaults, {
searchInputPlaceholder: ''
});
var SearchDropdown = $.fn.select2.amd.require('select2/dropdown/search');
var _renderSearchDropdown = SearchDropdown.prototype.render;
SearchDropdown.prototype.render = function(decorated) {
// invoke parent method
var $rendered = _renderSearchDropdown.apply(this, Array.prototype.slice.apply(arguments));
this.$search.attr('placeholder', this.options.get('searchInputPlaceholder'));
return $rendered;
};
})(window.jQuery);
用法:
使用searchInputPlaceholder
选项初始化 select2 插件:
$("select").select2({
// options
searchInputPlaceholder: 'My custom placeholder...'
});
演示:
在JsFiddle 上提供演示。
2020 年 5 月 9 日更新
使用最新的 Select2 版本 ( v4.0.13 ) - JsFiddle 进行测试。
Github 仓库:
https://github.com/andrevictor/select2-searchInputPlaceholder
您可以使用该事件:
select2:opening : 在下拉菜单打开之前触发。 可以阻止此事件
在这个事件中添加占位符属性就足够了:
$(this).data('select2').$dropdown.find(':input.select2-search__field').attr('placeholder', 'My Placeholder')
$('select').select2({ placeholder: 'Select an option' }).on('select2:opening', function(e) { $(this).data('select2').$dropdown.find(':input.select2-search__field').attr('placeholder', 'My Placeholder') })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script> <select style="width: 100%;"> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </select>
使用事件select2:open 。
$('#mySelect').select2().on('select2:open', function(e){
$('.select2-search__field').attr('placeholder', 'your placeholder');
})
你必须添加类
disabled selected hidden
选择的第一个选项元素
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.