我为我的网站使用select2插件。在IE中,遇到的问题是它总是将焦点设置在select2帧上。
<select class="form-control" name="categories[]" id="inputCate" multiple="multiple">
// JS
$(document).ready(function(){
var data = [{ id: 0, text: 'enhancement' }, { id: 1, text: 'bug' }, { id: 2, text: 'duplicate' }, { id: 3, text: 'invalid' }, { id: 4, text: 'wontfix' }];
$("#inputCate").select2({
data: data,
maximumSelectionLength: 2,
placeholder: "Chuyên mục"
});
});
答案 0 :(得分:3)
尝试使用上一个版本Select2 v4.0.1
修复了很多错误
答案 1 :(得分:2)
IE中存在错误:应用占位符文本时会发生输入事件。所以你可以: a)删除占位符选项 b)替换select2.js
this.$selection.on('input', '.select2-search--inline', function (evt) {
// Unbind the duplicated `keyup` event
self.$selection.off('keyup.search');
});
this.$selection.on('keyup.search input', '.select2-search--inline',
function (evt) {
self.handleSearch(evt);
})
带
this.$selection.on('keyup.search', '.select2-search--inline',
function (evt) {
self.handleSearch(evt);
});
答案 2 :(得分:0)
这是IE占位符错误。当js替换占位符IE设置焦点时。 我对jQuery和Select2 4.0.0的解决方案不好
fixIePlaceholderSelect2 = function(select) {
var placeholderFix = select.parent().find('.placeholder_ie_fix');
if(select.val())
placeholderFix.addClass('hide');
placeholderFix.on("click", function () {
select.select2("open");
$(this).addClass('hide');
});
select.on("select2:open", function () {
if(!select.val())
placeholderFix.addClass('hide');
});
select.on("select2:close", function () {
placeholderFix.removeClass('hide');
});
};
fixIePlaceholderSelect2(
$('select[name=services]')
);
.placeholder_ie_fix {
position: absolute;
margin-top: -9px;
cursor: pointer;
}
.placeholder_ie_fix.hide {
display: none;
}
<div class="placeholder_ie_fix">My placeholder</div>
<select name="services" class="set_fix" multiple>
<option>234</option>
</select>
答案 3 :(得分:0)
如果您避免使用重音,占位符就可以正常工作。
正如@ alexandr-nekrasov所说,问题出在占位符上,但前提是它包含重音符号。尝试
placeholder: "Chuyen mục"
并查看它是否有效。需要一些测试,但它对我有用。