Der Kunde hat mir ein Design gegeben, das ein Auswahloptionsmenü enthält, das ein Kontrollkästchen zusammen mit dem Elementnamen als einzelne Elemente in der Liste enthält. Ist es überhaupt möglich, ein Kontrollkästchen in einem Auswahloptionsmenü hinzuzufügen?
NB: Der Entwickler muss seine eigene ID hinzufügen, damit das Menü effektiv wird. Ich benötige den HTML-CSS-Code nur, wenn dies möglich ist.
javascript
html
css
html-select
Held Tra
quelle
quelle
Antworten:
Sie können das Kontrollkästchen nicht in das Auswahlelement einfügen, aber Sie können dieselbe Funktionalität mithilfe von HTML, CSS und JavaScript erhalten. Hier ist eine mögliche Arbeitslösung. Die Erklärung folgt.
Code:
Erläuterung:
Zuerst erstellen wir ein Auswahlelement, das den Text "Option auswählen" anzeigt, und ein leeres Element, das das Auswahlelement abdeckt (überlappt) (
<div class="overSelect">
). Wir möchten nicht, dass der Benutzer auf das Auswahlelement klickt - es werden leere Optionen angezeigt. Um das Element mit einem anderen Element zu überlappen, verwenden wir die CSS-Positionseigenschaft mit dem Wert relative | absolut.Um die Funktionalität hinzuzufügen, geben wir eine JavaScript-Funktion an, die aufgerufen wird, wenn der Benutzer auf das div klickt, das unser select-Element (
<div class="selectBox" onclick="showCheckboxes()">
) enthält.Wir erstellen auch div, das unsere Kontrollkästchen enthält, und formatieren es mit CSS. Die oben erwähnte JavaScript-Funktion ändert lediglich den
<div id="checkboxes">
Wert der CSS-Anzeigeeigenschaft von "none" in "block" und umgekehrt.Die Lösung wurde in den folgenden Browsern getestet: Internet Explorer 10, Firefox 34, Chrome 39. Für den Browser muss JavaScript aktiviert sein.
Mehr Informationen:
CSS-Positionierung
Wie man ein Div über ein anderes Div legt
http://www.w3schools.com/css/css_positioning.asp
CSS-Anzeigeeigenschaft
http://www.w3schools.com/cssref/pr_class_display.asp
quelle
overselect
div, das möglicherweise Probleme in einer komplexen Schnittstelle verursachen könnte, die ich verwendet habe<option selected hidden>Select an option</option>
. Es ist vielleicht nicht die beste Verwendung,hidden
aber es funktioniert.Das bisher beste Plugin ist Bootstrap Multiselect
Hier ist die DEMO
quelle
Für einen Pure CSS- Ansatz können Sie den
:checked
Selektor in Kombination mit dem::before
Selektor verwenden, um bedingten Inhalt zu integrieren.Fügen Sie einfach die Klasse
select-checkbox
zu Ihremselect
Element hinzu und fügen Sie das folgende CSS hinzu:Sie können einfache alte Unicode-Zeichen (mit einer maskierten Hex-Codierung ) wie folgt verwenden:
\2610
\2611
Oder wenn Sie die Dinge aufpeppen möchten, können Sie diese FontAwesome- Glyphen verwenden
\f096
\f046
Demo in jsFiddle & Stack Snippets
Code-Snippet anzeigen
quelle
multiple
Attribut das<select>
Aussehen wie eine Box anstelle eines Dropdowns macht ...<select multiple>
Element anzuwenden , so dass dies der beabsichtigte Anwendungsfall sein sollte. Die CSS-Selektoren sollten spezifisch für die Anwendung dieser Klasse sein, damit Sie sich für die Verwendung auf einzelne Elemente entscheiden, indem Sie die.select-checkbox
Klasse anwendenVersuchen Sie es mit Mehrfachauswahl . Es scheint eine sehr saubere und verwaltete Lösung mit unzähligen Beispielen zu sein.
quelle
Ich aus @vitfo Antwort gestartet , aber ich möchte haben
<option>
innen<select>
statt Checkbox Eingänge , so dass ich alle zusammen setzen die Antworten , dies zu machen, da mein Code, ich hoffe , es jemand helfen.quelle
Alternative Vanilla JS-Version mit Klick nach außen, um Kontrollkästchen auszublenden:
Ich verwende addEventListener anstelle von onClick, um die Optionen für die Erfassungs- / Blasenphase zusammen mit stopPropagation () zu nutzen. Weitere Informationen zum Capture / Bubbling finden Sie hier: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
Der Rest des Codes stimmt mit der ursprünglichen Antwort von vitfo überein (es ist jedoch kein onclick () im HTML erforderlich). Einige Leute haben diese Funktionalität ohne jQuery angefordert.
Hier ist ein Beispiel für einen Codepen: https://codepen.io/davidysoards/pen/QXYYYa?editors=1010
quelle
Sie können diese Bibliothek auf git für diesen Zweck verwenden: https://github.com/ehynds/jquery-ui-multiselect-widget
Verwenden Sie diese Option, um die Auswahlbox zu starten
und wenn Sie die Daten in json bereit haben (von Ajax oder einer anderen Methode), analysieren Sie zuerst die Daten und weisen Sie ihr dann das js-Array zu
quelle
Verwenden Sie diesen Code für die Kontrollkästchenliste im Optionsmenü.
quelle
dropdown-menu
Kontrollkästchens mit Kontrollkästchenelementen in jeder Zeile finden Sie hier eine Antwort für das Einfügen von Kontrollkästchen in eine Bootstrap-Dropdown-ListeMöglicherweise laden Sie die Datei multiselect.js, bevor die Optionsliste mit dem AJAX-Aufruf aktualisiert wird. Während der Ausführung der Datei multiselect.js ist also eine leere Optionsliste vorhanden, um die Multiselect-Funktion anzuwenden. Aktualisieren Sie also zuerst die Optionsliste per AJAX-Aufruf und starten Sie dann den Mehrfachauswahl-Aufruf. Sie erhalten die Dropdown-Liste mit der dynamischen Optionsliste.
Hoffe das wird dir helfen.
Multiselect-Dropdown-Liste und zugehörige JS- und CSS-Dateien
quelle
Sie können Bootstrap-select ausprobieren . Es hat auch eine Live-Suche!
quelle
Wenn Sie mehrere ausgewählte Dropdowns auf derselben Seite erstellen möchten:
Html:
Verwenden von Jquery:
quelle
Fügen Sie nur class create div und add class form-control hinzu. Ich benutze JSP, boostrap4. Ignoriere c: foreach.
quelle