Usando la función createSearchChoice de Select2
-
12-12-2019 - |
Pregunta
Estoy intentando utilizar la función createSearchChoice para permitir a los usuarios ingresar su propia elección cuando la lista predeterminada no sea suficiente.Cuando intento utilizar esta función en un <select>
elemento, aparece el siguiente error:
Error: Error: Option 'createSearchChoice' is not allowed for Select2 when attached to a <select> element.
Intenté usar un <input type='hidden'>
elemento en su lugar, pero ahora aparece el siguiente error:
Error: uncaught exception: query function not defined for Select2 'MyInputName'
Preferiría usar el elemento de selección para mantenerme en línea con el código existente (necesito la capacidad de seleccionar múltiples opciones), pero solo necesito que los usuarios puedan ingresar su propia opción además de seleccionar de una lista anterior.
Solución
Oh Dios, ¿cómo cancelo esta recompensa?Entré en pánico y debido al pánico pude responder lo que ambos buscábamos:
no puedes usar createSearchChoice
en un select
.Entonces tienes que usar un input
en cambio.
<input type="hidden" id="category">
La solución es utilizar el query
parámetro:
$("#category").select2({query:function(query){
var data = {results: []};
data.results.push({text: query.term});
query.callback(data);
}});
Lo que esto hace es agregar el término actual a las opciones si no está allí.Puedes poblar el results
objeto así:
var data = {results: [{text:'math'},{text:'science'}]};
Esto resolvió mi problema, así que espero que haya resuelto el tuyo.Creo que deberíamos leer más sobre el documentación.
Otros consejos
Tuve este problema y se debió a llamar a Select2 en el mismo campo dos veces