Javascript 选择2,当没有匹配的选项时,应显示“其他”
使用select2下拉列表,如果没有与用户键入的输入匹配的选项,如何获得显示的默认选项Javascript 选择2,当没有匹配的选项时,应显示“其他”,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,使用select2下拉列表,如果没有与用户键入的输入匹配的选项,如何获得显示的默认选项 $("something").select2({ formatNoMatches: function(term) { //return a search choice } }); 我在select2文档或堆栈溢出中找不到任何真正符合此功能的内容 编辑 我离这个越来越近了 $("something").select2({ formatNoMatches: function(term) {
$("something").select2({
formatNoMatches: function(term) {
//return a search choice
}
});
我在select2文档或堆栈溢出中找不到任何真正符合此功能的内容
编辑
我离这个越来越近了
$("something").select2({
formatNoMatches: function(term) {
return "<div class='select2-result-label'><span class='select2-match'></span>Other</div>"
}
});
但这是一个非常简单的问题,而且也不可点击。我通过更改匹配器解决了这个问题
$('#activity_log_industry_name').select2
matcher: (term, text) ->
if text=="Other"
return true
text.toUpperCase().indexOf(term.toUpperCase())>=0
这是咖啡脚本。唯一的问题是任何搜索都会弹出Other,但这可以通过修改sortResults函数轻松解决。补充@vararis的答案: 附加到元素的Select2不允许自定义createSearchChoice或查询函数,因此我们需要手动添加一个option元素,我将其添加为元素的最后一个选项,以便我们可以轻松地将其从结果集中删除:
<select>
...
<option value="0">Other</option>
</select>
sortResults: function(results) {
if (results.length > 1) results.pop();
return results;
}
最后,当除了最初始终在结果集中的其他结果外,还有任何其他结果时,我们需要从结果集中删除其他选项:
<select>
...
<option value="0">Other</option>
</select>
sortResults: function(results) {
if (results.length > 1) results.pop();
return results;
}
试试这个答案
当未找到匹配项时,使用以下代码将消息显示为“其他”
$("select").select2({
formatNoMatches : function(term) {
return "Other";
}
});
试试看,在较新的版本中这项工作选择2 4.0.3 不添加新变量 在数据中搜索相似的查询
<select id="something">
...
<option value="other">Other</option> <!-- or put this in "dataItemsList" for dynamic option -->
</select>
希望这能奏效。在Select2的4+版中,匹配器应按如下方式传递:
<select>
...
<option value="0">Other</option>
</select>
$something.select2{
匹配器:函数参数、数据{
如果data.id==0{/要自定义格式匹配,请在视图中使用以下代码
ui-select2={formatNoMatches:'No Results Found'}对select2不太熟悉,但这篇文章可能会有所帮助:您是将其附加到select还是隐藏输入中使用?阅读上一篇文档,我使用了一个旧版本,我发现有一种方法可以使用函数来完成它,但可以在下划线后指示操作,例如$something\u get。我只需要使用基本匹配。@MaximilianoRios你能详细说明一下,或者给我指一下你正在查看的文档吗?当然,在这里可以找到:注意,如果结果集的末尾没有像['apples','other','trees'这样的'other',,我认为第二部分就不起作用了,但很明显如何从这里开始。是的,我在一开始就对该部分进行了注释。=]即使您有某种排序,我也会在后面附加另一个选项,以便方便地将其弹出。但迭代结果集数组并拼接另一个结果也不难。matcher签名更改为Select2版本4+,请看HI.。当结果中没有匹配的元素时,我只需要添加其他选项。您能帮助我吗me@DhrumilShah现在我们开始,检查那里的链接,我已经更新了我的小提琴。我使用了javascript名称alasql。非常感谢@KingGeneral。但是我有其他选项。当我键入其他时,有两个结果是匹配g、 我只需要一个结果。你能建议一下吗?你的意思是当键入other时,它显示2个other吗?啊,已经修复了这个问题,请看上面的代码/fiddleHi@KingGeneral。它仍然可以看到另外两个选项。我想下面的代码没有比较其他值。请帮助…ifresult==false&&tag.term!=other{return{id:other,text:other};}
<select>
...
<option value="0">Other</option>
</select>