Question

J'essaie d'utiliser la fonction createSearchChoice pour permettre aux utilisateurs de saisir leur propre choix lorsque la liste par défaut ne suffit 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 <input type='hidden'> élément à la place, mais obtenez maintenant l'erreur suivante :

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

Je préférerais utiliser l'élément select pour rester conforme au code existant (besoin de la possibilité de sélectionner plusieurs options), mais j'ai juste besoin de la possibilité pour les utilisateurs de saisir leur propre option en plus de sélectionner dans une liste précédente.

Était-ce utile?

La solution

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 un select.Il faut donc utiliser un input plutôt.

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

La solution consiste à utiliser le query paramètre:

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

Cela ajoute le terme actuel aux options s'il n'est pas là.Vous pouvez remplir le results objet comme ceci :

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

Cela a résolu mon problème, j'espère donc que cela a résolu le vôtre.Je pense que nous devrions en lire davantage sur Documentation.

Autres conseils

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top