16

私は、選択したプラグインから select2 プラグインに移行しました。これは、私にとってはうまく機能するためですが、選択したものと比較すると、そのドキュメントは非常に貧弱です。select2検索機能を使用して、検索語で始まる(途中に含まれない)単語をフィルタリングするためにどのオプションを使用する必要があるかを誰か教えてください。

select2 フィールドにバナナ、リンゴ、パイナップルのオプションがあるとします。

ユーザーが「app」(または apple) と入力すると、apple のみが返されます (apple で始まる唯一の単語であるため)。これで、apple と pineapple の両方が返されます。

多くの検索の結果、カスタムマッチャーを使用する必要があることがわかりましたが、これまでのところすべてです。

4

2 に答える 2

21

Select2 は、カスタム関数を使用して検索語を検索結果に一致させる方法の例をドキュメントに示しています。matcher与えられた例は、まさにこの使用例です。

function matchStart (term, text) {
  if (text.toUpperCase().indexOf(term.toUpperCase()) == 0) {
    return true;
  }
 
  return false;
}
 
$.fn.select2.amd.require(['select2/compat/matcher'], function (oldMatcher) {
  $("select").select2({
    matcher: oldMatcher(matchStart)
  })
});
<link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.css" rel="stylesheet"/>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.full.js"></script>

<select style="width: 200px">
  <option value="AL">Alabama</option>
  <option value="AK">Alaska</option>
  <option value="AZ">Arizona</option>
</select>

于 2015-07-22T23:28:43.893 に答える