J'utilise le composant Bootstrap Dropdown dans mon application comme ceci:
<div class="btn-group">
<button class="btn">Please Select From List</button>
<button class="btn dropdown-toggle" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu">
<li><a tabindex="-1" href="#">Item I</a></li>
<li><a tabindex="-1" href="#">Item II</a></li>
<li><a tabindex="-1" href="#">Item III</a></li>
<li class="divider"></li>
<li><a tabindex="-1" href="#">Other</a></li>
</ul>
</div>
Je voudrais afficher l'élément sélectionné comme étiquette btn. En d'autres termes, remplacez «Veuillez sélectionner dans la liste» par l'élément de liste qui a été sélectionné («Item I», «Item II», «Item III»).
la source
Mis à jour pour Bootstrap 3.3.4:
Cela vous permettra d'avoir un texte d'affichage et une valeur de données différents pour chaque élément. Il persistera également le curseur lors de la sélection.
JS:
HTML:
Exemple JS Fiddle
la source
$(this).text()
.$(this).parents(".dropdown").find('.btn')
dans une variable au lieu de laisser jquery traverser le DOM deux fois.J'ai pu légèrement améliorer la réponse de Jai pour qu'elle fonctionne dans le cas où vous auriez plus d'un menu déroulant avec une assez bonne présentation qui fonctionne avec bootstrap 3:
Code pour le bouton
Extrait JQuery
J'ai également ajouté une marge droite de 5px à la classe "sélection".
la source
Cette fonction jQuery unique fera tout ce dont vous avez besoin.
la source
Voici ma version de celle-ci qui, j'espère, pourra vous faire gagner du temps :)
jQuery PART:
PARTIE HTML:
la source
Celui-ci fonctionne sur plus d'un menu déroulant dans la même page. De plus, j'ai ajouté un curseur sur l'élément sélectionné:
la source
vous devez utiliser ajouter une classe
open
dans<div class="btn-group open">
et en
li
plusclass="active"
la source
En outre modifié en fonction de la réponse de @Kyle car $ .text () retourne la chaîne exacte, de sorte que la balise caret est imprimée littéralement, plutôt que comme un balisage, juste au cas où quelqu'un voudrait garder le curseur intact dans la liste déroulante.
la source
J'ai corrigé le script pour plusieurs listes déroulantes sur la page
la source
Un autre moyen simple (Bootstrap 4) de travailler avec plusieurs listes déroulantes
la source
Cela semble être un long problème. Tout ce que nous voulons, c'est simplement implémenter une balise de sélection dans le groupe d'entrée. Mais le bootstrap ne le ferait pas: https://github.com/twbs/bootstrap/issues/10486
l'astuce consiste simplement à ajouter la classe "btn-group" à la div parent
html:
js:
la source
Une fois que vous avez cliqué sur l'élément, ajoutez un attribut de données tel que data-selected-item = 'true' et récupérez-le à nouveau.
Essayez d' ajouter data-selected-item = 'true' pour l' élément li sur lequel vous avez cliqué, puis
Avant d'ajouter cet attribut, vous supprimez simplement l'élément sélectionné de données existant dans la liste. J'espère que cela vous aiderait
Pour plus d'informations sur l'utilisation des attributs de données dans jQuery, reportez-vous aux données jQuery
la source
var test = $('ul.dropdown-menu li').data('selected-item').find('a').text(); $("#nbtn").html(test);
vous s'il vous plaît me faire savoir ce que je fais de mal?J'ai dû mettre quelques javascripts affichés ci-dessus dans le code "document.ready". Sinon, ils n'ont pas fonctionné. Probablement évident pour beaucoup, mais pas pour moi. Donc, si vous testez, regardez cette option.
la source
Par exemple:
HTML:
J'utilise le nouvel élément BtnCaption pour modifier uniquement le texte du bouton.
Coller dans
$(document).ready(function () {}
le texte suivantJavaScript:
:not(.disabled)
ne pas autoriser l'utilisation des éléments de menu désactivésla source