Usando la funzione CreateseSearchChaice Select2
-
12-12-2019 - |
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.
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