javascript - 我可以从自定义匹配器中访问原始 select2 匹配器吗?

标签 javascript jquery jquery-select2

我正在使用select2 jQuery 插件。下拉列表中的第一个选项标记为“所有组织”。当用户搜索某个选项时,我不想在搜索结果中包含第一个“所有组织”选项。

有没有简单的方法可以做到这一点?

看来策略是使用自定义匹配器,如果我看到该选项则返回 null。但是,然后我需要对匹配器的其余部分进行编码,这基本上会执行与默认行为相同的操作。我可以以某种方式从自定义匹配器中调用原始匹配器吗?

$("select").select2({
    matcher: custMatcher
});

function custMatcher(params, data) {
    if (params.term === "All Organizations") {
        return null;
    }

    // else do regular searching
    // would like to call the original matcher here.
 }

jsfiddle

最佳答案

我们开始吧;)

var defaultMatcher = $.fn.select2.defaults.defaults.matcher;
function customMatcher(params, data) {
  if (params.term && data.id == "ALL") 
  	return null;
  return defaultMatcher(params, data);
}
$("#s").select2({
	matcher: customMatcher,
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet"/>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>

<select id="s">
<option value="ALL">All Organizations</option>
<option value="1">Org 1</option>
</select>

关于javascript - 我可以从自定义匹配器中访问原始 select2 匹配器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46590229/

相关文章:

javascript - 遍历元素以查找特定 ID

javascript - 在 Jade 中使用 JS 脚本的变量

javascript - 使用显示 : none visible again + Loading Image before <li> 制作 HTML Div

javascript - jQuery Click 事件不适用于 jCarousel

jquery - 使用 jQuery 获取数组中从 [1] 而不是 [0] 开始的索引

php - 从下拉列表中选择值,第二个下拉列表自动更改

javascript - Select2 从多个中获取删除的值

javascript - 使用 jquery 用新数据覆盖现有的 select2 多选下拉列表

jquery - Handsontable 中的 Select2 下拉菜单超出布局/单元格

javascript - IE中图片有时会掉到页面底部