¿Hay algo fuera de la caja que bootstrap admite para representar un cuadro de selección de lista desplegable de hecho "regular"? Es decir, ¿dónde el cuadro desplegable es una lista de valores y, si se selecciona, completa el contenido del cuadro de lista?
Algo similar a esta funcionalidad?
twitter-bootstrap
genxgeek
fuente
fuente
<select>
. mientras bootstrap se utiliza<ul>
para desplegables, en última instancia es un uso engañoso de dicha etiqueta. Dada toda la pompa de JQuery en bootstrap, me pregunto por qué no alteraron el cuidado para seleccionar ellos mismos. Esa parecería una solución mucho más elegante que la apropiación indebidaul
.Respuestas:
Bootstrap 3 usa la
.form-control
clase para diseñar componentes de formulario.http://getbootstrap.com/css/#forms-controls
fuente
bootstrap.js
. La diferencia visual clave entre esto y la solución de arranque 'completa' (aludida por @JonathanEdwards) es que el menú que aparece es cuadrado, menos bonito, como elalert
cuadro que proporciona su navegador. Pequeño problema realmente. Sin embargo, el selector sin clic se ve exactamente como uno de Bootstrap.Otra opción es hacer que el menú desplegable Bootstrap se comporte como una selección usando jQuery ...
http://www.bootply.com/b4NKREUPkN
fuente
La respuesta agradable y fácil de Skelly ahora está desactualizada con los cambios en la sintaxis desplegable en Bootstap. En su lugar use esto:
fuente
Prueba: http://jsfiddle.net/brynner/hkwhaqsj/6/
HTML
jQuery
CSS
fuente
Otra opción podría ser usar bootstrap select . En sus propias palabras:
fuente
Otra forma sin usar .form-control es esta:
fuente
El código de Ben requiere que el div padre tenga la clase form-group (estaba usando btn-group), esta es una versión ligeramente diferente que solo busca el div más cercano e incluso puede ser un poco más rápido.
fuente
Bootstrap3
.form-control
es genial, pero para aquellos que aman o necesitan el menú desplegable con la opción de botón y ul, aquí está el código actualizado. Edité el código de Steve para corregir el salto al enlace hash y cerrar el menú desplegable después de la selección.Gracias a Steve, Ben y Skelly!
fuente
Actualmente estoy luchando con menús desplegables y me gustaría compartir mis experiencias:
Hay situaciones específicas donde
<select>
que no se pueden usar y deben 'emularse' con el menú desplegable.Por ejemplo, si desea crear grupos de entrada de bootstrap, como botones con menús desplegables (consulte http://getbootstrap.com/components/#input-groups-buttons-dropdowns ). Lamentablemente
<select>
no es compatible con los grupos de entrada, no se representará correctamente.¿O alguien ya ha resuelto esto? Estaría muy interesado en la solución.
Y para hacerlo aún más complicado, no puede usarlo simplemente
$(this).text()
para capturar lo que el usuario seleccionó en el menú desplegable si está usando glypicons o iconos de fuentes increíbles como contenido para el menú desplegable. Por ejemplo:<li id="someId"><a href="#0"><i class="fa fa-minus"></i></a></li>
porque en este caso no hay texto y si va a agregar algo, también se mostrará en el elemento desplegable y esto no es deseado.Encontré dos posibles soluciones:
1) Use
$(this).html()
para obtener contenido del<li>
elemento seleccionado y luego para examinarlo, pero obtendrá algo así,<a href="#0"><i class="fa fa-minus"></i></a>
por lo que debe jugar con esto para extraer lo que necesita.2) Uso
$(this).text()
y ocultar el texto en el elemento de lapso oculta:<li id="someId"><a href="#0"><i class="fa fa-minus"><span class="hidden">text</span></i></a></li>
. Para mí, esta es una solución simple y elegante, puede poner cualquier texto que necesite, el texto estará oculto y no necesita hacer ninguna transformación del$(this).html()
resultado como en la opción 1) para obtener lo que necesita.Espero que esté claro y pueda ayudar a alguien :-)
fuente