如何在 JavaScript 中使用複選框在選擇選項內?
有時,我們需要在選擇選項內使用複選框。我們可以透過在選擇選項中引入複選框來允許使用者選擇多個選項。但是,如果我們對<select>標籤使用multiple屬性,它允許我們透過按“ctrl + 左鍵單擊”來選擇它們,但這是一種糟糕的使用者體驗。因此,我們可以在<select>選單中引入複選框以改善使用者體驗。
在這裡,我們將使用 JQuery 和 JavaScript 來管理<select>選單中已選中複選框的值。
建立自定義選擇選單
HTML 的<select>元素不允許我們將複選框新增為選項。因此,我們可以使用 HTML <div>元素建立一個自定義下拉選單,並將複選框新增為其選項。
語法
使用者可以遵循以下語法來使用 JavaScript 管理自定義下拉選單的複選框。
function showOptions() {
if (showCheckBoxes) {
// show options div
showCheckBoxes = false;
} else {
// hide options div
showCheckBoxes = true;
}
}
function getOptions() {
// selectedOptions is an array containing all checked checkboxes
var selectedOptions = document.querySelectorAll('input[type=checkbox]:checked')
}
在上面的語法中,我們根據showCheckBoxes變數的值顯示自定義下拉選單的選項。此外,我們可以遍歷selectedOptions陣列來逐個獲取所有選中的複選框。
步驟
步驟 1 − 建立一個包含選單文字的 div。
步驟 2 − 現在,使用自定義 HTML,並使用複選框輸入型別建立選項。
步驟 3 − 在 div 元素上新增 onClick 事件。當用戶單擊 div 時,它應該呼叫 showOptions() 選單。
步驟 4 − 在 JavaScript 中,宣告 showCheckBoxes 變數,並將其初始化為 true 布林值。我們將根據 showCheckBoxes 變數顯示自定義下拉選單的選項。
步驟 5 − 每當使用者單擊下拉 div 元素時,根據 showCheckBoxes 變數的值更改選項 div 的顯示。
步驟 6 − 現在,定義一個 getOptions() 函式。在 getOptions() 函式中,訪問所有選中的複選框,並使用 for 迴圈遍歷 selectedOptions 陣列來列印所有選中複選框的值。
示例 1
在下面的示例中,我們建立瞭如上演算法中所述的自定義選擇選單。使用者可以透過選中多個複選框來選擇多個選項。
此外,當用戶單擊“獲取選定的複選框”按鈕時,它將呼叫 getOptions() 函式並列印所有選中複選框的值,這樣我們就可以獲取選擇選單的所有選中選項。
<html>
<head>
<style>
.dropdown {
width: 12rem;
height: 1.5rem;
font-size: 1.3rem;
padding: 0.6 0.5rem;
background-color: aqua;
cursor: pointer;
border-radius: 10px;
border: 2px solid yellow;
}
#options {
margin: 0.5rem 0;
width: 12rem;
background-color: lightgrey;
display: none;
flex-direction: column;
border-radius: 12px;
}
label {
padding: 0.2rem;
}
label:hover {
background-color: aqua;
}
button {
font-size: 1rem;
border-radius: 10px;
padding: 0.5rem;
background-color: yellow;
border: 2px solid green;
margin: 1rem 0;
}
</style>
</head>
<body>
<h2>Creating the custom dropdown menu to use <i>Checkboxes</i> as an option.
</h2>
<div class = "dropdown" onclick = "showOptions()">
show all options
</div>
<div id = "options">
<label for = "one">
<input type = "checkbox" id = "one" value = "First Option" />
First Option
</label>
<label for = "two">
<input type = "checkbox" id = "two" value = "Second Option" />
Second Option
</label>
<label for = "three">
<input type = "checkbox" id = "three" value = "Third Option" />
Third Option
</label>
<label for = "four">
<input type = "checkbox" id = "four" value = "Fourth Option" />
Fourth Option
</label>
<label for = "five">
<input type = "checkbox" id = "five" value = "Fifth Option" />
Fifth Option
</label>
</div>
<div id = "output"> </div>
<button onclick = "getOptions()"> Get all Selected Checkboxes </button>
<script>
let output = document.getElementById('output');
var showCheckBoxes = true;
function showOptions() {
var options =
document.getElementById("options");
if (showCheckBoxes) {
options.style.display = "flex";
showCheckBoxes = !showCheckBoxes;
} else {
options.style.display = "none";
showCheckBoxes = !showCheckBoxes;
}
}
function getOptions() {
var selectedOptions = document.querySelectorAll('input[type=checkbox]:checked')
output.innerHTML = "The selected options are given below. <br/>";
for (var i = 0; i < selectedOptions.length; i++) {
output.innerHTML += selectedOptions[i].value + " , ";
console.log(selectedOptions[i])
}
}
</script>
</body>
</html>
在本教程中,使用者學習瞭如何使用 html、CSS 和 JavaScript 建立自定義選擇選單。此外,使用者可以使用 Bootstrap 等一些 CSS 庫來建立帶有複選框的選擇選單。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP