Existe algo fora da caixa que o bootstrap suporta para renderizar uma caixa de seleção da lista suspensa padrão "regular"? Ou seja, onde a caixa suspensa é uma lista de valores e, se selecionada, preenche o conteúdo da caixa de listagem?
Algo semelhante a esta funcionalidade?
twitter-bootstrap
genxgeek
fonte
fonte
<select>
. enquanto o bootstrap utiliza<ul>
para drop-downs, esse é, em última análise, um uso enganoso da referida tag. considerando toda a pompa do JQuery no bootstrap, eu me pergunto por que eles não alteraram o sinal de intercalação para selecionar a si mesmos. Isso pareceria uma solução muito mais elegante do que a apropriação indevidaul
.Respostas:
O Bootstrap 3 usa a
.form-control
classe para estilizar os componentes do formulário.http://getbootstrap.com/css/#forms-controls
fonte
bootstrap.js
. A principal diferença visual entre essa e a solução de bootstrap 'completa' (mencionada por @ JonathanEdwards) é que o menu que aparece é quadrado, menos bonito, como aalert
caixa fornecida pelo navegador. Pequeno problema realmente. No entanto, o seletor sem cliques se parece exatamente com o Bootstrap.Outra opção é fazer com que o menu suspenso Bootstrap se comporte como um select usando o jQuery ...
http://www.bootply.com/b4NKREUPkN
fonte
A resposta fácil e agradável de Skelly agora está desatualizada com as alterações na sintaxe suspensa no Bootstap. Em vez disso, use o seguinte:
fonte
Teste: http://jsfiddle.net/brynner/hkwhaqsj/6/
HTML
jQuery
CSS
fonte
Outra opção pode estar usando o bootstrap select . Em suas próprias palavras:
fonte
Outra maneira sem usar o controle .form é o seguinte:
fonte
O código de Ben exige que o div pai tenha a classe de grupo de formulários (eu estava usando o grupo btn), esta é uma versão ligeiramente diferente que apenas procura pelo div mais próximo e pode até ser um pouco mais rápido.
fonte
O Bootstrap3
.form-control
é legal, mas para quem gosta ou precisa do menu suspenso com o botão e a opção ul, aqui está o código atualizado. Editei o código por Steve para corrigir o salto para o link de hash e fechar o menu suspenso após a seleção.Graças a Steve, Ben e Skelly!
fonte
Atualmente, estou lutando com listas suspensas e gostaria de compartilhar minhas experiências:
Existem situações específicas em que
<select>
não podem ser usadas e devem ser 'emuladas' com o menu suspenso.Por exemplo, se você deseja criar grupos de entrada de inicialização, como Botões com menus suspensos (consulte http://getbootstrap.com/components/#input-groups-buttons-dropdowns ). Infelizmente
<select>
não é suportado em grupos de entrada, não será renderizado corretamente.Ou alguém já resolveu isso? Eu ficaria muito interessado na solução.
E para torná-lo ainda mais complicado, você não pode usar tão simplesmente
$(this).text()
para capturar o usuário selecionado no menu suspenso se estiver usando glypicons ou ícones impressionantes de fontes como conteúdo para o menu suspenso. Por exemplo:<li id="someId"><a href="#0"><i class="fa fa-minus"></i></a></li>
como neste caso não há texto e, se você adicionar algum texto, ele também será exibido no elemento suspenso e isso é indesejável.Encontrei duas soluções possíveis:
1) Use
$(this).html()
para obter o conteúdo do<li>
elemento selecionado e, em seguida, examiná-lo, mas você terá algo parecido<a href="#0"><i class="fa fa-minus"></i></a>
com o que precisa, para jogar com ele para extrair o que precisa.2) Use
$(this).text()
e ocultar o texto no elemento no espaço oculto:<li id="someId"><a href="#0"><i class="fa fa-minus"><span class="hidden">text</span></i></a></li>
. Para mim, esta é uma solução simples e elegante, você pode colocar qualquer texto que precisar, o texto ficará oculto e não precisará fazer nenhuma transformação de$(this).html()
resultado, como na opção 1) para obter o que precisa.Espero que esteja claro e possa ajudar alguém :-)
fonte