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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top