Utilisation de la fonction createSearchChoice de Select2

J'essaie d'utiliser la fonction createSearchChoice pour permettre aux utilisateurs d'entrer leur propre choix lorsque la liste par défaut ne suffira pas. Lorsque j'essaie d'utiliser cette fonction sur un <select> élément, j'obtiens l'erreur suivante:

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

J'ai essayé d'utiliser un élément <input type='hidden'> à la place, mais maintenant obtenir l'erreur suivante:

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

Je préférerais utiliser l'élément select pour rester en ligne avec le code existant (besoin de la possibilité de sélectionner plusieurs options) , mais juste besoin de la capacité pour les utilisateurs d'entrer leurs propres option de sélection à partir d'une liste avant.

22
demandé sur j0k 2012-07-26 21:21:28

2 réponses

Oh mon Dieu, Comment puis-je annuler cette prime. J'ai paniqué et à cause de la panique, j'ai pu répondre à ce que nous cherchions tous les deux:

Vous ne pouvez pas utiliser createSearchChoice sur select. Vous devez donc utiliser un input à la place.

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

Le correctif consiste à utiliser le paramètre query:

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

Ce que cela fait est d'ajouter le terme actuel aux options s'il n'est pas là. Vous pouvez remplir l'objet results comme suit:

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

Cela a résolu mon problème alors j'espère qu'il a résolu le vôtre. Je pense que nous devrions lire plus sur la documentation .

28
répondu Jürgen Paul 2012-07-29 07:40:01

J'ai eu ce problème et c'était dû à l'appel de select2 sur le même champ deux fois

2
répondu Jeff Dickey 2013-04-05 17:43:27