jQuery Select2在单击任意位置时清除输入值?
我在一个项目中使用jquery select2制作标记。除了一件事,一切都很好。 选择2在单击外部时强制清除输入值(该值不是作为标记创建的) 比如说。 在下面的屏幕截图中,当我输入xyz并在标记选择器外部单击时,清除xyz。 我不想清除值 如果不清除值,如何强制选择2 我用谷歌搜索了一下,但运气不好,而且在select2文档中也没有选择 这就是我使用的方法 HTMLjQuery Select2在单击任意位置时清除输入值?,jquery,jquery-select2,Jquery,Jquery Select2,我在一个项目中使用jquery select2制作标记。除了一件事,一切都很好。 选择2在单击外部时强制清除输入值(该值不是作为标记创建的) 比如说。 在下面的屏幕截图中,当我输入xyz并在标记选择器外部单击时,清除xyz。 我不想清除值 如果不清除值,如何强制选择2 我用谷歌搜索了一下,但运气不好,而且在select2文档中也没有选择 这就是我使用的方法 HTML 在Select2代码中花费时间后,我终于找到了覆盖clearSearch函数的解决方案,因此在用户将其设置为标记之前,它不会清
在Select2代码中花费时间后,我终于找到了覆盖
clearSearch
函数的解决方案,因此在用户将其设置为标记之前,它不会清除该值
选择2为我们提供覆盖任何功能的选项
window.Select2
他们将Select2对象插入到windows对象中,以便在我们需要定制时使用
代码:
感谢大家的支持这是select2的默认行为。我认为您需要
createSearchChoice
选项@是的,你是对的,这是默认行为。我很惊讶地知道,没有任何选项可以阻止它,或者我没有找到任何选项?@mishik这个createSearchChoice如何帮助我不清除输入数据?据我所知,createSearchChoice
用于从用户的搜索词中创建一个新的可选选项。
@RohitBatra使用您的想法是的,我发现clearSearch
是删除输入值的函数。有没有办法不用编辑插件就覆盖这个函数?
<input type="hidden" id="tagSelect" value="brown,red,green" style="width:300px;" />
$('#tagSelect').select2({
tags: ["red", "green", "blue"],
minimumResultsForSearch: -1,
dropdownCss:{"display": "none"},
tokenSeparators: [",",13," "]
});
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"));
}
}