O cliente me deu um design que tem um menu Selecionar opção contendo uma caixa de seleção junto com o nome do item como itens individuais na lista. Existe alguma forma de adicionar uma caixa de seleção dentro de um menu Selecionar opção?
NB: O desenvolvedor precisa adicionar seu próprio id para tornar o menu efetivo, eu só preciso do código HTML CSS se for possível.
javascript
html
css
html-select
Hero Tra
fonte
fonte
Respostas:
Você não pode colocar a caixa de seleção dentro do elemento de seleção, mas pode obter a mesma funcionalidade usando HTML, CSS e JavaScript. Aqui está uma possível solução de trabalho. A explicação segue.
Código:
Explicação:
Primeiramente, criamos um elemento select que mostra o texto "Selecione uma opção" e um elemento vazio que cobre (sobrepõe) o elemento selecionado (
<div class="overSelect">
). Não queremos que o usuário clique no elemento selecionado - ele mostraria opções vazias. Para sobrepor o elemento a outro elemento, usamos a propriedade de posição CSS com valor relativo | absoluto.Para adicionar a funcionalidade, especificamos uma função JavaScript que é chamada quando o usuário clica no div que contém nosso elemento select (
<div class="selectBox" onclick="showCheckboxes()">
).Também criamos div que contém nossas caixas de seleção e estilizamos usando CSS. A função JavaScript mencionada acima apenas muda
<div id="checkboxes">
valor da propriedade de exibição CSS de "nenhum" para "bloquear" e vice-versa.A solução foi testada nos seguintes navegadores: Internet Explorer 10, Firefox 34, Chrome 39. O navegador precisa ter o JavaScript habilitado.
Mais Informações:
Posicionamento CSS
Como sobrepor um div sobre outro div
http://www.w3schools.com/css/css_positioning.asp
Propriedade de exibição CSS
http://www.w3schools.com/cssref/pr_class_display.asp
fonte
overselect
div que poderia causar alguns problemas em uma interface complexa que usei<option selected hidden>Select an option</option>
. Pode não ser o melhor uso do,hidden
mas funciona.O melhor plugin até agora é o Bootstrap Multiselect
Aqui está o DEMO
fonte
Para uma abordagem Pure CSS , você pode usar o
:checked
seletor combinado com o::before
seletor para embutir conteúdo condicional.Basta adicionar a classe
select-checkbox
ao seuselect
elemento e incluir o seguinte CSS:Você pode usar caracteres Unicode simples (com uma codificação hexadecimal de escape ) como estes:
\2610
\2611
Ou se quiser apimentar as coisas, você pode usar esses glifos FontAwesome
\f096
\f046
Demonstração em jsFiddle e Stack Snippets
Exibir trecho de código
fonte
multiple
atributo faz a<select>
aparência de uma caixa em vez de uma lista suspensa ...<select multiple>
elemento, de modo que deve ser o caso de uso pretendido. Os seletores CSS devem ser específicos para a aplicação dessa classe, então você decide usar em elementos individuais aplicando a.select-checkbox
classeExperimente a seleção múltipla , especialmente vários itens . Parece ser uma solução muito limpa e gerenciada, com toneladas de exemplos. Você também pode ver a fonte.
fonte
Comecei com a resposta @vitfo, mas quero ter entradas
<option>
dentro em<select>
vez de caixas de seleção, então juntei todas as respostas para fazer isso, aqui está o meu código, espero que ajude alguém.fonte
Versão alternativa do Vanilla JS com clique fora para ocultar as caixas de seleção:
Estou usando addEventListener em vez de onClick para aproveitar as vantagens das opções de fase de captura / bolha junto com stopPropagation (). Você pode ler mais sobre a captura / borbulhamento aqui: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
O resto do código corresponde à resposta original do vitfo (mas não há necessidade de onclick () no html). Algumas pessoas solicitaram essa funcionalidade sem jQuery.
Aqui está um exemplo de codepen https://codepen.io/davidysoards/pen/QXYYYa?editors=1010
fonte
Você pode usar esta biblioteca no git para esta finalidade https://github.com/ehynds/jquery-ui-multiselect-widget
para iniciar a caixa de seleção use este
e quando você tiver os dados prontos em json (de ajax ou qualquer método), primeiro analise os dados e depois atribua o array js a eles
fonte
Use este código para a lista de caixas de seleção no menu de opções.
fonte
dropdown-menu
com elementos de caixa de seleção em cada linha, aqui está uma resposta para colocar caixas de seleção em uma lista suspensa BootstrapVocê pode estar carregando o arquivo multiselect.js antes da lista de opções atualizada com a chamada AJAX, portanto, enquanto a execução do arquivo multiselect.js, há uma lista de opções vazia para aplicar a funcionalidade multiselect. Portanto, primeiro atualize a lista de opções por chamada AJAX e, em seguida, inicie a chamada multisseleção, você obterá a lista suspensa com a lista de opções dinâmicas.
Espero que isso ajude você.
Lista suspensa Multiselect e js relacionados e arquivos CSS
fonte
Você pode tentar selecionar Bootstrap . Tem uma pesquisa ao vivo também!
fonte
Se você deseja criar vários menus suspensos de seleção na mesma página:
Html:
Usando Jquery:
fonte
Apenas adicione class create div e adicione class form-control. Iam usar JSP, boostrap4. Ignore c: foreach.
fonte