select2自定义匹配器toUpperCase未定义

时间:2016-07-18 16:19:54

标签: jquery-select2 select2

我正在尝试使用带有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>

2 个答案:

答案 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。我会先尝试将内容标准化。不知道为什么它没有工作,因为它遵循示例。

是什么让你认为匹配器签名是错误的?