我正在尝试使用带有select2插件的自定义匹配器,但我收到错误" text.toUpperCase()"没有定义。我已经按照示例进行了操作但无法使用它。任何帮助,将不胜感激。我的代码如下:
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.full.min.js"></script>
<script type="text/javascript">
$('.selectpicker').select2({
placeholder: 'Select an option',
matcher: function(term, text) {
var has = true;
var words = term.toUpperCase().split(" ");
for (var i =0; i < words.length; i++){
var word = words[i];
has = has && (text.toUpperCase().indexOf(word) >= 0);
}
return has;
}
});
</script>
答案 0 :(得分:0)
您可能正在使用匹配器签名中的v3。
我建议规范化输入参数以确保它们是字符串:
matcher: function(term, text) {
var has = true;
var words = ("" + term).toUpperCase().split(" ");
for (var i =0; i < words.length; i++){
var word = words[i];
has = has && (("" + text).toUpperCase().indexOf(word) >= 0);
}
return has;
}
答案 1 :(得分:0)
我正在使用JS脚本源URL中定义的V4。我会先尝试将内容标准化。不知道为什么它没有工作,因为它遵循示例。
是什么让你认为匹配器签名是错误的?