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 :-)