Estoy usando el componente de arranque de arranque en mi aplicación de esta manera:
<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>
Me gustaría mostrar el elemento seleccionado como la etiqueta btn. En otras palabras, reemplace "Seleccione de la lista" con el elemento de la lista que ha sido seleccionado ("Elemento I", "Elemento II", "Elemento III").
Actualizado para Bootstrap 3.3.4:
Esto le permitirá tener diferentes valores de texto y datos de visualización para cada elemento. También persistirá la preocupación en la selección.
JS:
HTML:
JS Fiddle Example
fuente
$(this).text()
.$(this).parents(".dropdown").find('.btn')
en una variable en lugar de hacer que jquery atraviese el DOM dos veces.Pude mejorar ligeramente la respuesta de Jai al trabajo en el caso de que tengas más de un botón desplegable con una presentación bastante buena que funciona con bootstrap 3:
Código para el botón
Fragmento de JQuery
También agregué un margen derecho de 5px a la clase "selección".
fuente
Esta única función jQuery hará todo lo que necesita.
fuente
Aquí está mi versión de esto que espero pueda ahorrarle algo de tiempo :)
PARTE jQuery:
PARTE HTML:
fuente
Este funciona en más de un menú desplegable en la misma página. Además, agregué caret en el elemento seleccionado:
fuente
necesitas usar add class
open
en<div class="btn-group open">
y en
li
agregarclass="active"
fuente
Modificado aún más en función de la respuesta de @Kyle ya que $ .text () devuelve una cadena exacta, por lo que la etiqueta de caret se imprime literalmente, en lugar de un marcado, en caso de que alguien quiera mantener el caret intacto en el menú desplegable.
fuente
He corregido el script para múltiples menús desplegables en la página
fuente
Otra forma simple (Bootstrap 4) de trabajar con múltiples menús desplegables
fuente
Parece ser un problema largo. Todo lo que queremos es implementar una etiqueta de selección en el grupo de entrada. Pero el bootstrap no lo haría: https://github.com/twbs/bootstrap/issues/10486
el truco es simplemente agregar la clase "btn-group" al div padre
html:
js:
fuente
Una vez que haga clic en el elemento, agregue algunos atributos de datos como data-selected-item = 'true' y vuelva a obtenerlo.
Intente agregar data-selected-item = 'true' para el elemento li en el que hizo clic, luego
Antes de agregar este atributo, simplemente elimine el elemento seleccionado de datos existente en la lista. Espero que esto te ayude
Para obtener información sobre el uso de atributos de datos en jQuery, consulte los datos de jQuery
fuente
var test = $('ul.dropdown-menu li').data('selected-item').find('a').text(); $("#nbtn").html(test);
¿Podrían decirme qué estoy haciendo mal?Tuve que poner algunos de los javascripts mostrados arriba dentro del código "document.ready". De lo contrario, no funcionaron. Probablemente obvio para muchos, pero no para mí. Entonces, si estás probando, mira esa opción.
fuente
Por ejemplo:
HTML:
Uso el nuevo elemento BtnCaption para cambiar solo el texto del botón.
Pegar en
$(document).ready(function () {}
el siguiente textoJavaScript:
:not(.disabled)
no permita usar los elementos de menú deshabilitadosfuente