选择禁用筛选器
Selectize disable sifter
我正在尝试实现 selectize javascript 库。它有效,但我的问题是如何禁用 sifter
选项。问题是默认 sifter
选项是启用的,如果我在选项中有像 Asset
这样的词,它会被过滤成 et
.
我尝试了以下但不起作用:
score: function () {
return function () {
return 1
}
}
Selectize 非常依赖 sifter
,我没有看到禁用它的简单方法,我认为如果你这样做,你会摆脱大部分(也许是整个)selectize
搜索功能。
sifter
在它的最后一个版本中有一个配置选项可以帮助你实现你想要的,配置选项是respect_word_boundaries
:
If true, matches only at start of word boundaries (e.g. the beginning of words, instead of matching the middle of words)
问题是 selectize
没有使用最新版本,所以你必须使用 selectize
的非全部捆绑版本,称为“默认”。
确保您使用的是 sifter
版本 0.6.0
。
我尝试使用 selectize
上的插件进行一些调整以使其正常工作。检查以下结果:
Selectize.define('change_search', function(options) {
var self = this;
this.getSearchOptions = (function() {
var original = self.getSearchOptions();
return function() {
original['respect_word_boundaries'] = true;
return original;
};
})();
});
$(document).ready(function() {
$('#search').selectize({
plugins: ['change_search']
});
});
.search {
width: 300px;
margin: 10px;
display: block;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/css/selectize.default.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/microplugin/0.0.3/microplugin.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sifter/0.6.0/sifter.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/js/selectize.min.js"></script>
<div class='search'>
<select placeholder="Choose one option..." id="search" multiple="multiple">
<option value="asset">Asset</option>
<option value="etc">Etcetera</option>
<option value="etymology">Etymology</option>
<option value="yet">Yet</option>
</select>
</div>
我正在尝试实现 selectize javascript 库。它有效,但我的问题是如何禁用 sifter
选项。问题是默认 sifter
选项是启用的,如果我在选项中有像 Asset
这样的词,它会被过滤成 et
.
我尝试了以下但不起作用:
score: function () {
return function () {
return 1
}
}
Selectize 非常依赖 sifter
,我没有看到禁用它的简单方法,我认为如果你这样做,你会摆脱大部分(也许是整个)selectize
搜索功能。
sifter
在它的最后一个版本中有一个配置选项可以帮助你实现你想要的,配置选项是respect_word_boundaries
:
If true, matches only at start of word boundaries (e.g. the beginning of words, instead of matching the middle of words)
问题是 selectize
没有使用最新版本,所以你必须使用 selectize
的非全部捆绑版本,称为“默认”。
确保您使用的是 sifter
版本 0.6.0
。
我尝试使用 selectize
上的插件进行一些调整以使其正常工作。检查以下结果:
Selectize.define('change_search', function(options) {
var self = this;
this.getSearchOptions = (function() {
var original = self.getSearchOptions();
return function() {
original['respect_word_boundaries'] = true;
return original;
};
})();
});
$(document).ready(function() {
$('#search').selectize({
plugins: ['change_search']
});
});
.search {
width: 300px;
margin: 10px;
display: block;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/css/selectize.default.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/microplugin/0.0.3/microplugin.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sifter/0.6.0/sifter.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/js/selectize.min.js"></script>
<div class='search'>
<select placeholder="Choose one option..." id="search" multiple="multiple">
<option value="asset">Asset</option>
<option value="etc">Etcetera</option>
<option value="etymology">Etymology</option>
<option value="yet">Yet</option>
</select>
</div>