我正在为selectbox使用select2 a jquery插件 - http://ivaynberg.github.io/select2/
关于这一点的一个好处是有多个选择的方式,但我遇到了问题。
问题1 - 当您单击下拉框时,占位符文本消失,因为您可以看到列表,但是如果您单击列表,占位符将不再显示,直到您再次单击。
问题2 - 如果您确实进行了2或3次选择,然后在删除最后一次后再删除这些选项,则必须在占位符文本返回之前单击该框。
在没有额外点击的情况下删除最后一个元素后,文本会立即返回
如果你去http://ivaynberg.github.io/select2/和程序化访问部分并使用第二个下拉菜单,你会看到问题。
这里是一个小提琴手
http://jsfiddle.net/dwhitmarsh/MfJ4B/13/
这是我的代码
$(function() {
$(".select2").select2({
formatSelection: multipleFormatResult,
dropdownCssClass : 'bigdrop',
escapeMarkup: function (m) { return m; }
}).on("change", function(e) {
//add tooltip when option selected
var title = $(this).attr("data-placeholder");
var data=$(this).select2("data");
if ( checkObject(data) !== true) {
$(this).parent().addClass("activeLI");
} else {
$(this).parent().removeClass("activeLI");
}
});
});
var hasOwnProperty = Object.prototype.hasOwnProperty;
function checkObject(obj) {
// null and undefined are empty
if (obj == null) return true;
// Assume if it has a length property with a non-zero value
// that that property is correct.
if (obj.length && obj.length > 0) return false;
if (obj.length === 0) return true;
for (var key in obj) {
if (hasOwnProperty.call(obj, key)) return false;
}
return true;
}
function multipleFormatResult(data, container) {
var markup = data.text;
return markup;
}