如何在 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 庫來建立帶有複選框的選擇選單。

更新於:2023年2月16日

8K+ 次瀏覽

啟動您的職業生涯

完成課程後獲得認證

開始學習
廣告
© . All rights reserved.