Como definir o espaço reservado na redefinição de valor por select2. No meu exemplo Se clicamos em locais ou caixas de seleção de classificação e meu select2 tem um valor que o valor de select2 deve redefinir e mostrar o espaço reservado padrão. Este script está redefinindo o valor, mas não mostra o espaço reservado
$("#locations, #grade ").change(function() {
$('#e6').select2('data', {
placeholder: "Studiengang wählen",
id: null,
text: ''
});
});
$("#e6").select2({
placeholder: "Studiengang wählen",
width: 'resolve',
id: function(e) {
return e.subject;
},
minimumInputLength: 2,
ajax: {
url: "index.php?option=com_unis&task=search.locator&tmpl=component&<?php echo JSession::getFormToken() ?>=1",
dataType: 'json',
data: function(term, page) {
return {
q: term, // search term
g: $('#grade option:selected').val(),
o: $('#locations option:selected').val()
};
},
results: function(data, page) {
return {
results: data
};
}
},
formatResult: subjectFormatResult,
formatSelection: subjectFormatSelection,
dropdownCssClass: "bigdrop",
escapeMarkup: function(m) {
return m;
}
});
.select2("val", "")
mais funcionar.$("#customers_select").val('').trigger('change') ;
Eu usei isso e funcionou.Select2 alterou sua API:
A melhor maneira de fazer isso agora é:
Edit: December 2016 Os comentários sugerem que o seguinte é a maneira atualizada de fazer isso:
fonte
$('#your_select_input').val('').trigger('change')
change
adição do acionador, mas também aciona a biblioteca de validação que estamos usando - por enquanto vou ter que usar a versão reprovada.A resposta aceita não funciona no meu caso. Estou tentando isso e está funcionando:
Defina select2:
ou
Reiniciar:
ou
fonte
$('#your_select_input').val('').trigger('change')
nem$('#your_select_input').val('');
funciona no FirefoxA única coisa que pode funcionar para mim é:
Estou usando a versão 4.0.3
Referência
De acordo com a documentação Select2
fonte
$('select2element').val("").trigger("change")
está funcionando bem.Com o Select2 versão 4.0.9, isso funciona para mim:
fonte
O Select2 usa uma classe CSS específica, portanto, uma maneira fácil de redefini-la é:
E você tem a vantagem de, se você tiver vários Select2 no mesmo formulário, todos eles serão redefinidos com este único comando.
fonte
Usa isto :
fonte
PARA REMOVER O VALOR SELECIONADO
PARA LIMPAR OS VALORES DA OPÇÃO
fonte
Eu sei que essa é uma pergunta antiga, mas isso funciona para a select2 versão 4.0
ou
se você tiver eventos de alteração vinculados a ele
fonte
$('#select2-element').last().val('').trigger('change.select2');
Use o seguinte para configurar o select2
E para limpar a entrada selecionada programaticamente
fonte
Esta é a maneira correta:
Estou usando a versão mais recente do Select2.
fonte
Primeiramente, você deve definir select2 como este:
Para redefinir o select2, basta usar o seguinte bloco de código:
fonte
Você pode limpar a seleção te
Mas isso não o levará de volta ao seu espaço reservado.
Então é meia solução
fonte
Eu tentei as soluções acima, mas não funcionou para mim.
Este é um tipo de hack, onde você não precisa acionar alterações.
ou
fonte
Para usuários que carregam dados remotos, isso redefinirá o select2 para o espaço reservado sem disparar o ajax. Funciona com a v4.0.3:
fonte
Portanto, para redefinir o formulário, alguns de vocês terão um botão de redefinição. Adicione o seguinte código dentro da tag de script
Ou apenas para esvaziar o campo de seleção sem manter um espaço reservado:
fonte
Para o espaço reservado
Para redefinir uma seleção 2
Espero que isto ajude
fonte
Seguindo a maneira recomendada de fazê-lo. Encontrado na documentação https://select2.github.io/options.html#my-first-option-is-being-displayed-instead-of-my-placeholder (este parece ser um problema bastante comum):
Quando isso acontece, geralmente significa que você não tem um espaço
<option></option>
em branco como primeira opção no seu<select>
.como em:
fonte
Eu também estava tendo esse problema e ele decorre de
val(null).trigger("change");
umNo select2/compat/inputData
erro antes que o espaço reservado seja redefinido. Resolvi o problema capturando o erro e definindo o espaço reservado diretamente (junto com uma largura). Nota: Se você tiver mais de um, precisará capturar cada um.Estou executando o Select2 4.0.3
fonte
change
evento. Tente acionarchange.select2
- isso não acionará ouvintes vinculados (consulte github.com/select2/select2/issues/3620 ).a partir da v.4.0.x ...
para limpar os valores, mas também restaurar o espaço reservado use ...
se estiver vazio, ele selecionará o primeiro item de opção que pode não ser o que você deseja
francamente ... Select2 é uma dor de bunda, me surpreende que não tenha sido substituído.
fonte
Eu tentei as soluções acima, mas nenhuma funcionou com a versão 4x.
O que eu quero alcançar é: limpe todas as opções, mas não toque no espaço reservado. Este código funciona para mim.
fonte
Usando select2 versão 3.2, isso funcionou para mim:
Não precisava implementar
initSelection
fonte
Depois de tentar as 10 primeiras soluções aqui e falhar, achei que essa solução funcionava (consulte o comentário "nilov comentou em 7 de abril • editado" na página):
A alteração é então feita:
(O autor mostrou originalmente
var $select = $(this[1]);
, para o qual um comentarista corrigiuvar $select = $(this[0]);
, que mostro acima.)fonte
Use este código em seu arquivo js
fonte
Antes de limpar o valor usando este
$("#customers_select").select2("val", "");
Tente definir o foco para qualquer outro controle ao clicar em redefinir.Isso mostrará o espaço reservado novamente.
fonte
A interface DOM, já acompanha o estado inicial ...
Portanto, basta fazer o seguinte:
fonte
Bem, sempre que eu fazia
Comecei a ter algum tipo de atraso depois de três a quatro gatilhos. Suponho que haja um vazamento de memória. Não está dentro do meu código, porque se eu remover essa linha, meu aplicativo ficará sem atraso.
Como tenho as opções allowClear definidas como true, fui com
Isso pode ser seguido por um $ ('myselectdropdown'). Select2 ('close'); gatilho de evento no elemento select2 dom, caso você queira fechar a sugestão aberta.
fonte
Uma maneira [muito] hacky de fazer isso (eu vi funcionar para a versão 4.0.3):
fonte
Minha solução é:
fonte
onde 0 é o seu primeiro valor do menu suspenso
fonte