Domanda

Sto cercando di utilizzare la funzione CreateSearchChaice per consentire agli utenti di inserire la propria scelta quando l'elenco predefinito non è sufficiente.Quando provo a utilizzare questa funzione su un elemento <select>, ottengo il seguente errore:

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

Ho provato a utilizzare invece un elemento <input type='hidden'>, ma ora ottieni il seguente errore:

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

Preferirei utilizzare l'elemento Seleziona per rimanere in linea con il codice esistente (è necessario che la possibilità di selezionare più opzioni), ma è valida solo la possibilità che gli utenti di immettere la propria opzione oltre a selezionare da un elenco precedente.

È stato utile?

Soluzione

Oh Dio, come posso cancellare questa bounty.Ho preso dal panico e a causa del panico, sono stato in grado di rispondere a quello che stavamo cercando entrambi:

Non è possibile utilizzare createSearchChoice su un select.Quindi devi invece usare un input.

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

La correzione è utilizzare il parametro query:

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

Cosa fa aggiungere il termine corrente alle opzioni se non è lì.È possibile popolare l'oggetto results come:

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

Questo ha risolto il mio problema, quindi spero che abbia risolto il tuo.Penso che dovremmo leggere di più su Documentazione .

Altri suggerimenti

Ho avuto questo problema ed è dovuto chiamare Select2 sullo stesso campo due volte

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top