我正在开发一个项目,我正在使用jquery select2来制作标签。除了一件事,一切都很好。 Select2强制清除输入值(不是作为标记创建的),点击外部。
例如,。 在下面的屏幕截图中,当我输入xyz并在标签选择器外单击时,它会清除xyz。
我不想清除价值。
如何强制Select2不清除值?
我谷歌但它没有运气,而且select2 docs也没有选项
http://ivaynberg.github.io/select2/
这就是我正在使用的方式
HTML
<input type="hidden" id="tagSelect" value="brown,red,green" style="width:300px;" />
JS
$('#tagSelect').select2({
tags: ["red", "green", "blue"],
minimumResultsForSearch: -1,
dropdownCss:{"display": "none"},
tokenSeparators: [",",13," "]
});
答案 0 :(得分:4)
在Select2代码中花了一些时间后,我终于找到了覆盖clearSearch
函数的解决方案,因此在用户将其设置为标记之前,它不会清除该值。
Select2为我们提供了覆盖任何功能的选项。
window.Select2
他们将select2对象插入到windows对象中,所以如果我们需要任何自定义
CODE:
window.Select2.class.multi.prototype.clearSearch=function(){
var placeholder = this.getPlaceholder(),
maxWidth = this.getMaxSearchWidth();
// CurrentThisInput=(this.search); i used this to get the current select2 element and make further action if required.
if(this.search.val()!=""){}else
if (placeholder !== undefined && this.getVal().length === 0 && this.search.val()=="") {
this.search.val(placeholder).addClass("select2-default");
this.search.width(maxWidth > 0 ? maxWidth : this.container.css("width"));
}
}
谢谢大家的支持