El cliente me ha dado un diseño que tiene un menú Seleccionar opción que contiene una casilla de verificación junto con el nombre del elemento como elementos individuales en la lista. ¿Es posible de todos modos agregar una casilla de verificación dentro de un menú Seleccionar opción?
NB: El desarrollador necesita agregar su propia identificación para que el menú sea efectivo, solo necesito el código HTML CSS si es posible.
javascript
html
css
html-select
Héroe Tra
fuente
fuente
Respuestas:
No puede colocar la casilla de verificación dentro del elemento de selección, pero puede obtener la misma funcionalidad utilizando HTML, CSS y JavaScript. Aquí hay una posible solución de trabajo. La explicación sigue.
Código:
Explicación:
Al principio creamos un elemento de selección que muestra el texto "Seleccionar una opción" y un elemento vacío que cubre (superpone) el elemento de selección (
<div class="overSelect">
). No queremos que el usuario haga clic en el elemento seleccionado; mostraría opciones vacías. Para superponer el elemento con otro elemento usamos la propiedad de posición CSS con valor relativo | absoluto.Para agregar la funcionalidad, especificamos una función de JavaScript que se llama cuando el usuario hace clic en el div que contiene nuestro elemento de selección (
<div class="selectBox" onclick="showCheckboxes()">
).También creamos div que contiene nuestras casillas de verificación y le aplicamos estilo usando CSS. La función de JavaScript mencionada anteriormente simplemente cambia el
<div id="checkboxes">
valor de la propiedad de visualización de CSS de "ninguno" a "bloque" y viceversa.La solución se probó en los siguientes navegadores: Internet Explorer 10, Firefox 34, Chrome 39. El navegador debe tener habilitado JavaScript.
Más información:
Posicionamiento CSS
Cómo superponer un div sobre otro div
http://www.w3schools.com/css/css_positioning.asp
Propiedad de visualización CSS
http://www.w3schools.com/cssref/pr_class_display.asp
fuente
overselect
div que podría causar algunos problemas en una interfaz compleja que utilicé<option selected hidden>Select an option</option>
. Puede que no sea el mejor uso de,hidden
pero funciona.El mejor complemento hasta ahora es Bootstrap Multiselect
Aquí está la DEMO
fuente
Para un enfoque de CSS puro , puede utilizar el
:checked
selector combinado con el::before
selector para incluir contenido condicional.Simplemente agregue la clase
select-checkbox
a suselect
elemento e incluya el siguiente CSS:Puede usar caracteres Unicode antiguos y sencillos (con una codificación hexadecimal de escape ) como estos:
\2610
\2611
O si quieres condimentar las cosas, puedes usar estos glifos FontAwesome
\f096
\f046
Demostración en jsFiddle & Stack Snippets
Mostrar fragmento de código
fuente
multiple
atributo hace que<select>
parezca un cuadro en lugar de un menú desplegable ...<select multiple>
elemento, por lo que debería ser el caso de uso previsto. Los selectores de CSS deben ser específicos para aplicar esa clase, por lo que decide usarlos en elementos individuales aplicando la.select-checkbox
clasePruebe la selección múltiple , especialmente los elementos múltiples . Parece ser una solución mucho más limpia y administrada, con toneladas de ejemplos. También puede ver la fuente.
fuente
Comencé desde la respuesta de @vitfo pero quiero tener
<option>
dentro en<select>
lugar de entradas de casilla de verificación, así que reuní todas las respuestas para hacer esto, ahí está mi código, espero que ayude a alguien.fuente
Versión alternativa de Vanilla JS con un clic fuera para ocultar las casillas de verificación:
Estoy usando addEventListener en lugar de onClick para aprovechar las opciones de la fase de captura / burbujeo junto con stopPropagation (). Puede leer más sobre la captura / burbujeo aquí: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
El resto del código coincide con la respuesta original de vitfo (pero no es necesario onclick () en el html). Un par de personas han solicitado esta funcionalidad sin jQuery.
Aquí está el ejemplo de codepen https://codepen.io/davidysoards/pen/QXYYYa?editors=1010
fuente
Puede usar esta biblioteca en git para este propósito https://github.com/ehynds/jquery-ui-multiselect-widget
para iniciar la casilla de selección utilice este
y cuando tenga los datos listos en json (desde ajax o cualquier método), primero analice los datos y luego asígnele la matriz js
fuente
Utilice este código para la lista de casillas de verificación en el menú de opciones.
fuente
dropdown-menu
con elementos de casilla de verificación en cada fila, aquí hay una respuesta para poner casillas de verificación en un menú desplegable de BootstrapEs posible que esté cargando el archivo multiselect.js antes de que la lista de opciones se actualice con la llamada AJAX, por lo que mientras se ejecuta el archivo multiselect.js, hay una lista de opciones vacía para aplicar la funcionalidad de selección múltiple. Entonces, primero actualice la lista de opciones mediante la llamada AJAX y luego inicie la llamada de selección múltiple; obtendrá la lista desplegable con la lista de opciones dinámicas.
Espero que esto te ayude.
Lista desplegable de selección múltiple y js relacionados y archivos CSS
fuente
Puede probar Bootstrap-select . ¡También tiene una búsqueda en vivo!
fuente
Si desea crear varios menús desplegables de selección en la misma página:
HTML:
Usando Jquery:
fuente
Solo agregue class create div y agregue class form-control. iam usa JSP, boostrap4. Ignore c: foreach.
fuente