Frage

Ich versuche, die Funktion „createSearchChoice“ zu verwenden, um Benutzern die Möglichkeit zu geben, ihre eigene Auswahl einzugeben, wenn die Standardliste nicht ausreicht.Wenn ich versuche, diese Funktion auf einem zu verwenden <select> Element, erhalte ich die folgende Fehlermeldung:

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

Ich habe es mit einem versucht <input type='hidden'> Element stattdessen, aber jetzt wird die folgende Fehlermeldung angezeigt:

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

Ich würde es vorziehen, das Element „select“ zu verwenden, um im Einklang mit dem vorhandenen Code zu bleiben (ich benötige die Möglichkeit, mehrere Optionen auszuwählen), aber ich brauche nur die Möglichkeit für Benutzer, zusätzlich zur Auswahl aus einer vorherigen Liste ihre eigene Option einzugeben.

War es hilfreich?

Lösung

Oh Gott, wie kann ich dieses Kopfgeld annullieren?Ich geriet in Panik und aufgrund dieser Panik konnte ich antworten, wonach wir beide suchten:

Du kannst es nicht verwenden createSearchChoice auf einen select.Sie müssen also eine verwenden input stattdessen.

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

Die Lösung besteht darin, die zu verwenden query Parameter:

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

Dadurch wird der aktuelle Begriff zu den Optionen hinzugefügt, falls er nicht vorhanden ist.Sie können die ausfüllen results Objekt wie folgt:

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

Das hat mein Problem gelöst, also hoffe ich, dass es auch Ihr Problem gelöst hat.Ich denke, wir sollten mehr darüber lesen Dokumentation.

Andere Tipps

Ich hatte dieses Problem und es war darauf zurückzuführen, dass Select2 auf demselben Feld zweimal aufgerufen wird

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top