web-dev-qa-db-ja.com

Select2のcreateSearchChoice関数の使用

デフォルトのリストでは不十分な場合に、ユーザーが独自の選択を入力できるように、createSearchChoice関数を使用しようとしています。この関数を<select>要素で使用しようとすると、次のエラーが発生します。

Error: Error: Option 'createSearchChoice' is not allowed for Select2 when attached to a <select> element.

代わりに<input type='hidden'>要素を使用しようとしましたが、次のエラーが発生します。

Error: uncaught exception: query function not defined for Select2 'MyInputName'

Select要素を使用して既存のコードと一致するようにしたいのですが(複数のオプションを選択する機能が必要です)、前のリストから選択することに加えて、ユーザーが独自のオプションを入力する機能が必要です。

22
jrrdnx

ああ、どうすればこの賞金をキャンセルできますか。私はパニックに陥り、パニックに陥ったため、私たち2人が探しているものに答えることができました。

createSearchChoiceselectを使用することはできません。したがって、代わりにinputを使用する必要があります。

<input type="hidden" id="category">

修正はqueryパラメータを使用することです:

$("#category").select2({query:function(query){
  var data = {results: []};
  data.results.Push({text: query.term});
  query.callback(data);
}});

これにより、現在の用語が存在しない場合はオプションに追加されます。次のようにresultsオブジェクトを設定できます:

var data = {results: [{text:'math'},{text:'science'}]};

これで私の問題は解決しました。 documentation についてもっと読む必要があると思います。

28
Jürgen Paul

私はこの問題を抱えていましたが、同じフィールドでselect2を2回呼び出すことが原因でした

2
Jeff Dickey