Pergunta

Estou tentando usar a função createSearchChoice para permitir que os usuários insiram suas próprias opções quando a lista padrão não for suficiente.Quando tento usar esta função em um <select> elemento, recebo o seguinte erro:

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

Eu tentei usar um <input type='hidden'> elemento, mas agora recebo o seguinte erro:

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

Eu preferiria usar o elemento select para permanecer alinhado com o código existente (preciso da capacidade de selecionar várias opções), mas só preciso que os usuários insiram suas próprias opções, além de selecionar em uma lista anterior.

Foi útil?

Solução

Oh Deus, como faço para cancelar esta recompensa.Entrei em pânico e devido ao pânico consegui responder o que ambos procurávamos:

Você não pode usar createSearchChoice com um select.Então você tem que usar um input em vez de.

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

A solução é usar o query parâmetro:

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

O que isso faz é adicionar o termo atual às opções, caso ele não esteja lá.Você pode preencher o results objeto assim:

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

Isso resolveu meu problema, então espero que tenha resolvido o seu.Acho que deveríamos ler mais sobre o documentação.

Outras dicas

Eu tive esse problema e foi devido a chamar select2 no mesmo campo duas vezes

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top