Select2 忽略某些输入?
Posted
技术标签:
【中文标题】Select2 忽略某些输入?【英文标题】:Select2 ignore certain input? 【发布时间】:2014-07-09 00:48:43 【问题描述】:所以我使用基于 Select2 JQuery 的替换选择框。
我已经为通过 ajax 进行远程数据搜索进行了设置(在我找到的示例的帮助下),效果很好。我的最小输入值为 3,因此用户必须在搜索开始前输入至少 3 个字符(否则“A”将返回 90% 的可搜索值)。
不幸的是,我的大部分可搜索值也以“The”开头。因此,如果用户键入“The”,则返回 50% 的结果,并在一个巨大的下拉列表中填充基本未过滤的结果……不理想!
有什么方法可以让 Select2 忽略某些固定短语,即输入“The”不应该计入最少 3 个字符数!
$('#searchInput').select2(
minimumInputLength: 3,
placeholder: 'Please search here ...',
ajax:
url: "/api/v1/institutes",
dataType: 'json',
quietMillis: 100,
data: function(term, page)
return
query: term
;
,
results: function(data, page )
return results: data
,
formatResult: function(institute)
return "<div class='select2-user-result'>" + institute.name + "</div>";
,
formatSelection: function(institute)
return institute.name;
,
initSelection : function (element, callback)
var elementText = $(element).attr('data-init-text');
callback("term":elementText);
);
【问题讨论】:
不确定 select2 是否有相应的 API,但解决此问题的另一种方法是修改您的 API 服务器进程(如果可能)以不搜索“the”或“the”和仅在他们键入第 4/5 个字母时,然后返回结果。同时,您可以为只输入“the”或您识别的任何其他词的人返回“搜索词太宽泛”。 查看文档:ivaynberg.github.io/select2 看起来您可以将 ajax: 替换为 query: 对于您自己的自定义函数,您必须自己编写 ajax 代码,但这意味着您可以添加任何自定义检查. 您的/api/v1/institutes
是什么样的?难道你不能在查询你的表之前创建一个过滤器来忽略 The
吗?
哦,哇,我才意识到这是从 2014 年开始的,哈哈
【参考方案1】:
您可以查看Select2 docs - search,您可以在其中自定义以匹配您的模式。
【讨论】:
【参考方案2】:我遇到了同样的问题。我通过在 html 代码中使用“data-minimum-input-length”属性解决了这个问题。
<select id="mySelect" data-minimum-input-length="3"></select>
【讨论】:
以上是关于Select2 忽略某些输入?的主要内容,如果未能解决你的问题,请参考以下文章