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:
var expanded = false;
function showCheckboxes() {
var checkboxes = document.getElementById("checkboxes");
if (!expanded) {
checkboxes.style.display = "block";
expanded = true;
} else {
checkboxes.style.display = "none";
expanded = false;
}
}
.multiselect {
width: 200px;
}
.selectBox {
position: relative;
}
.selectBox select {
width: 100%;
font-weight: bold;
}
.overSelect {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
#checkboxes {
display: none;
border: 1px #dadada solid;
}
#checkboxes label {
display: block;
}
#checkboxes label:hover {
background-color: #1e90ff;
}
<form>
<div class="multiselect">
<div class="selectBox" onclick="showCheckboxes()">
<select>
<option>Select an option</option>
</select>
<div class="overSelect"></div>
</div>
<div id="checkboxes">
<label for="one">
<input type="checkbox" id="one" />First checkbox</label>
<label for="two">
<input type="checkbox" id="two" />Second checkbox</label>
<label for="three">
<input type="checkbox" id="three" />Third checkbox</label>
</div>
</div>
</form>
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