Le client m'a donné un design qui a un menu Sélectionner une option contenant une case à cocher avec le nom de l'élément en tant qu'éléments individuels dans la liste. Est-il possible de toute façon d'ajouter une case à cocher dans un menu Sélectionner une option?
NB: Le développeur doit ajouter son propre identifiant pour rendre le menu efficace, je n'ai besoin du code HTML CSS que si c'est possible.
javascript
html
css
html-select
Héros Tra
la source
la source
Réponses:
Vous ne pouvez pas placer de case à cocher à l'intérieur de l'élément de sélection, mais vous pouvez obtenir la même fonctionnalité en utilisant HTML, CSS et JavaScript. Voici une solution de travail possible. L'explication suit.
Code:
Explication:
Au début, nous créons un élément de sélection qui affiche le texte "Sélectionnez une option", et un élément vide qui recouvre (chevauche) l'élément de sélection (
<div class="overSelect">
). Nous ne voulons pas que l'utilisateur clique sur l'élément de sélection - il afficherait une option vide. Pour chevaucher l'élément avec un autre élément, nous utilisons la propriété de position CSS avec une valeur relative | absolu.Pour ajouter la fonctionnalité, nous spécifions une fonction JavaScript qui est appelée lorsque l'utilisateur clique sur le div qui contient notre élément de sélection (
<div class="selectBox" onclick="showCheckboxes()">
).Nous créons également un div qui contient nos cases à cocher et le stylisons en utilisant CSS. La fonction JavaScript mentionnée ci-dessus change simplement la
<div id="checkboxes">
valeur de la propriété d'affichage CSS de "aucun" à "bloc" et vice versa.La solution a été testée dans les navigateurs suivants: Internet Explorer 10, Firefox 34, Chrome 39. Le navigateur doit avoir JavaScript activé.
Plus d'information:
Positionnement CSS
Comment superposer un div sur un autre div
http://www.w3schools.com/css/css_positioning.asp
Propriété d'affichage CSS
http://www.w3schools.com/cssref/pr_class_display.asp
la source
overselect
div qui pourrait potentiellement causer des problèmes dans une interface complexe que j'ai utilisée<option selected hidden>Select an option</option>
. Ce n'est peut-être pas la meilleure utilisation,hidden
mais cela fonctionne.Le meilleur plugin à ce jour est Bootstrap Multiselect
Voici la DEMO
la source
Pour une approche Pure CSS , vous pouvez utiliser le
:checked
sélecteur combiné avec le::before
sélecteur pour insérer du contenu conditionnel.Ajoutez simplement la classe
select-checkbox
à votreselect
élément et incluez le CSS suivant:Vous pouvez utiliser d'anciens caractères Unicode simples (avec un encodage hexadécimal échappé ) comme ceux-ci:
\2610
\2611
Ou si vous voulez pimenter les choses, vous pouvez utiliser ces glyphes FontAwesome
\f096
\f046
Démo dans jsFiddle & Stack Snippets
Afficher l'extrait de code
la source
multiple
attribut fait<select>
ressembler à une boîte au lieu d'une liste déroulante ...<select multiple>
élément, donc cela devrait être le cas d'utilisation prévu. Les sélecteurs CSS doivent être spécifiques à l'application de cette classe afin que vous décidiez de l'utiliser sur des éléments individuels en appliquant la.select-checkbox
classeEssayez la sélection multiple , en particulier les éléments multiples . Semble être une solution bien propre et gérée, avec des tonnes d'exemples. Vous pouvez également afficher la source.
la source
Je suis parti de la réponse @vitfo mais je veux avoir des entrées à l'
<option>
intérieur<select>
au lieu de cases à cocher, donc j'ai rassemblé toutes les réponses pour faire cela, il y a mon code, j'espère que cela aidera quelqu'un.la source
Autre version de Vanilla JS avec un clic à l'extérieur pour masquer les cases à cocher:
J'utilise addEventListener au lieu de onClick afin de profiter des options de phase de capture / bouillonnement avec stopPropagation (). Vous pouvez en savoir plus sur la capture / bullage ici: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
Le reste du code correspond à la réponse originale de vitfo (mais pas besoin de onclick () dans le html). Quelques personnes ont demandé cette fonctionnalité sans jQuery.
Voici l'exemple de codepen https://codepen.io/davidysoards/pen/QXYYYa?editors=1010
la source
Vous pouvez utiliser cette bibliothèque sur git à cet effet https://github.com/ehynds/jquery-ui-multiselect-widget
pour lancer la boîte de sélection, utilisez ceci
et lorsque vous avez les données prêtes dans json (à partir d'ajax ou de n'importe quelle méthode), commencez par analyser les données puis attribuez-leur le tableau js
la source
Utilisez ce code pour la liste de cases à cocher dans le menu d'options.
la source
dropdown-menu
avec des éléments de case à cocher dans chaque ligne, voici une réponse pour mettre des cases à cocher dans une liste déroulante BootstrapVous pourriez être en train de charger le fichier multiselect.js avant la mise à jour de la liste d'options avec l'appel AJAX, donc pendant l'exécution du fichier multiselect.js, il y a une liste d'options vide pour appliquer la fonction multiselect. Donc, mettez d'abord à jour la liste d'options par appel AJAX, puis lancez l'appel multisélection, vous obtiendrez la liste déroulante avec la liste d'options dynamique.
Espérons que cela va vous aider.
Liste déroulante Multiselect et fichiers js et css associés
la source
Vous pouvez essayer Bootstrap-select . Il a aussi une recherche en direct!
la source
Si vous souhaitez créer plusieurs listes déroulantes de sélection dans la même page:
Html:
Utilisation de Jquery:
la source
N'ajoutez que la classe create div et ajoutez le contrôle de formulaire de classe. j'utilise JSP, boostrap4. Ignorez c: foreach.
la source