我正在使用 select2 一个用于选择框的 jquery 插件 - http://ivaynberg.github.io/select2/
关于这一点的一件好事是进行多项选择的方式,但我遇到了问题。
问题 1 - 当您单击下拉框时,占位符文本会消失,这没关系,因为您可以看到列表,但是如果您单击列表,则占位符在您再次单击之前不会重新显示。
问题 2 - 如果您确实进行了 2 或 3 个选择,然后在删除最后一个选项后再次删除这些选项,则必须在占位符文本返回之前单击该框。
我真正的目的是让文本在最后一个元素被删除后立即返回而无需额外的点击
如果你去这里http://ivaynberg.github.io/select2/并进入 Programmatic Access 部分并使用第二个下拉菜单,你会看到这个问题。
这是一个js小提琴
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;
}