Y a-t-il quelque chose hors de la boîte que le bootstrap prend en charge pour rendre une boîte de sélection de liste déroulante par défaut "régulière"? Autrement dit, où la zone de liste déroulante est une liste de valeurs et si elle est sélectionnée, remplir le contenu de la zone de liste?
Quelque chose de similaire à cette fonctionnalité?
twitter-bootstrap
genxgeek
la source
la source
<select>
. alors que bootstrap utilise<ul>
pour les listes déroulantes, c'est finalement une utilisation trompeuse de ladite balise. étant donné toute la pompe JQuery dans le bootstrap, je me demande pourquoi ils n'ont pas modifié le curseur pour sélectionner eux-mêmes. Cela semblerait une solution beaucoup plus gracieuse que l'appropriation illiciteul
.Réponses:
Bootstrap 3 utilise la
.form-control
classe pour styliser les composants de formulaire.http://getbootstrap.com/css/#forms-controls
la source
bootstrap.js
. La principale différence visuelle entre cela et la solution d'amorçage `` complète '' (évoquée par @JonathanEdwards) est que le menu qui apparaît est carré, moins joli, comme laalert
boîte fournie par votre navigateur. Petit problème vraiment. Cependant, le sélecteur non cliqué ressemble exactement à un sélecteur Bootstrap.Une autre option consiste à faire en sorte que la liste déroulante Bootstrap se comporte comme une sélection à l'aide de jQuery ...
http://www.bootply.com/b4NKREUPkN
la source
La réponse agréable et facile de Skelly est désormais obsolète avec les modifications apportées à la syntaxe déroulante dans Bootstap. Utilisez plutôt ceci:
la source
Test: http://jsfiddle.net/brynner/hkwhaqsj/6/
HTML
jQuery
CSS
la source
Une autre option pourrait être d'utiliser bootstrap select . Selon leurs propres mots:
la source
Une autre façon sans utiliser le contrôle .form est la suivante:
la source
Le code de Ben nécessite que le div parent ait la classe form-group (j'utilisais btn-group), c'est une version légèrement différente qui recherche juste le div le plus proche et peut même être un peu plus rapide.
la source
The Bootstrap3
.form-control
est cool mais pour ceux qui aiment ou ont besoin du menu déroulant avec bouton et option ul, voici le code mis à jour. J'ai édité le code de Steve pour corriger le saut vers le lien de hachage et la fermeture du menu déroulant après la sélection.Merci à Steve, Ben et Skelly!
la source
Je me bats actuellement avec des listes déroulantes et je voudrais partager mes expériences:
Il existe des situations spécifiques où
<select>
ne peuvent pas être utilisées et doivent être «émulées» avec la liste déroulante.Par exemple, si vous souhaitez créer des groupes d'entrée bootstrap, comme des boutons avec des listes déroulantes (voir http://getbootstrap.com/components/#input-groups-buttons-dropdowns ). Malheureusement, il
<select>
n'est pas pris en charge dans les groupes d'entrée, il ne sera pas rendu correctement.Ou est-ce que quelqu'un a déjà résolu cela? Je serais très intéressé par la solution.
Et pour le rendre encore plus compliqué, vous ne pouvez pas utiliser simplement
$(this).text()
pour attraper quel utilisateur sélectionné dans la liste déroulante si vous utilisez des glypicons ou des icônes impressionnantes de police comme contenu pour la liste déroulante. Par exemple:<li id="someId"><a href="#0"><i class="fa fa-minus"></i></a></li>
Parce que dans ce cas, il n'y a pas de texte et si vous en ajoutez, il sera également affiché dans l'élément déroulant et ce n'est pas souhaité.J'ai trouvé deux solutions possibles:
1) Utilisez
$(this).html()
pour obtenir le contenu de l'<li>
élément sélectionné , puis pour l'examiner, mais vous obtiendrez quelque chose comme<a href="#0"><i class="fa fa-minus"></i></a>
ça, vous devez donc jouer avec cela pour extraire ce dont vous avez besoin.2) Utiliser
$(this).text()
et masquer le texte dans l' élément de la durée cachée:<li id="someId"><a href="#0"><i class="fa fa-minus"><span class="hidden">text</span></i></a></li>
. Pour moi, c'est une solution simple et élégante, vous pouvez mettre n'importe quel texte dont vous avez besoin, le texte sera caché, et vous n'avez pas besoin de faire de transformations de$(this).html()
résultat comme dans l'option 1) pour obtenir ce dont vous avez besoin.J'espère que c'est clair et peut aider quelqu'un :-)
la source