How to find all selected options of HTML select tag?

When working with HTML select dropdowns, you may need to find which options a user has selected. This is particularly useful for form validation, order processing, or dynamic content updates. In this article, we'll explore how to find all selected options using JavaScript and jQuery.

Syntax

Following is the basic syntax for finding selected options using jQuery

$("option:selected").text();

For vanilla JavaScript, use

var selectedOptions = selectElement.selectedOptions;

Here:

  • option:selected A jQuery pseudo-class selector that targets all selected options in dropdown menus

  • text() A jQuery method that returns the text content of the selected elements

  • selectedOptions A native JavaScript property that returns an HTMLCollection of selected options

Method 1 Single Selection with jQuery

For single-select dropdowns, you can easily retrieve the selected option text or value using jQuery's :selected pseudo-selector.

Example

<!DOCTYPE html>
<html>
<head>
   <title>Find Single Selected Option</title>
   <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h3>Choose an option from the dropdown</h3>
   <select id="singleSelect">
      <option value="html">HTML</option>
      <option value="css">CSS</option>
      <option value="javascript">JavaScript</option>
      <option value="jquery">jQuery</option>
      <option value="react">React</option>
   </select>
   <button id="checkSingle">Check Selection</button>
   <div id="singleResult" style="margin-top: 10px; font-weight: bold;"></div>
   <script>
      $(document).ready(function() {
         $("#checkSingle").click(function() {
            var selectedText = $("#singleSelect option:selected").text();
            var selectedValue = $("#singleSelect option:selected").val();
            $("#singleResult").html("Selected: " + selectedText + " (Value: " + selectedValue + ")");
         });
      });
   </script>
</body>
</html>

The output shows the selected option's text and value when the button is clicked

Selected: JavaScript (Value: javascript)

Method 2 Multiple Selection with jQuery

For multi-select dropdowns, you need to iterate through all selected options and collect them into an array. The multiple attribute allows users to select multiple options by holding Ctrl (Windows) or Cmd (Mac) while clicking.

Example

<!DOCTYPE html>
<html>
<head>
   <title>Find Multiple Selected Options</title>
   <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h3>Select multiple options (Hold Ctrl/Cmd while clicking)</h3>
   <select id="multiSelect" multiple style="height: 120px; width: 200px;">
      <option value="pizza">Pizza</option>
      <option value="burger">Burger</option>
      <option value="fries">French Fries</option>
      <option value="dosa">Dosa</option>
      <option value="samosa">Samosa</option>
   </select>
   <br><br>
   <button id="checkMultiple">Get Selected Items</button>
   <div id="multiResult" style="margin-top: 10px;">
      <strong>Selected Items:</strong>
      <ul id="selectedList"></ul>
   </div>
   <script>
      $(document).ready(function() {
         $("#checkMultiple").click(function() {
            var selectedItems = [];
            $("#multiSelect option:selected").each(function() {
               selectedItems.push($(this).text());
            });
            
            var listHtml = "";
            if (selectedItems.length > 0) {
               selectedItems.forEach(function(item) {
                  listHtml += "<li>" + item + "</li>";
               });
            } else {
               listHtml = "<li>No items selected</li>";
            }
            $("#selectedList").html(listHtml);
         });
      });
   </script>
</body>
</html>

The output displays all selected options in a bulleted list

Selected Items:
? Pizza
? Burger
? Dosa

Method 3 Using Vanilla JavaScript

You can also find selected options using native JavaScript without jQuery. This approach is useful when you want to avoid external dependencies.

Example

<!DOCTYPE html>
<html>
<head>
   <title>Find Selected Options with JavaScript</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h3>Programming Languages (Multiple Selection)</h3>
   <select id="jsMultiSelect" multiple style="height: 100px; width: 180px;">
      <option value="js">JavaScript</option>
      <option value="py">Python</option>
      <option value="java">Java</option>
      <option value="cpp">C++</option>
      <option value="php">PHP</option>
   </select>
   <br><br>
   <button onclick="getSelectedJS()">Get Selected Languages</button>
   <div id="jsResult" style="margin-top: 10px; padding: 10px; background-color: #f0f0f0;"></div>
   
   <script>
      function getSelectedJS() {
         var selectElement = document.getElementById("jsMultiSelect");
         var selectedOptions = selectElement.selectedOptions;
         var selectedTexts = [];
         var selectedValues = [];
         
         for (var i = 0; i < selectedOptions.length; i++) {
            selectedTexts.push(selectedOptions[i].text);
            selectedValues.push(selectedOptions[i].value);
         }
         
         var resultHtml = "<strong>Selected Languages:</strong><br>";
         if (selectedTexts.length > 0) {
            resultHtml += "Texts: " + selectedTexts.join(", ") + "<br>";
            resultHtml += "Values: " + selectedValues.join(", ");
         } else {
            resultHtml += "No languages selected";
         }
         
         document.getElementById("jsResult").innerHTML = resultHtml;
      }
   </script>
</body>
</html>

The JavaScript approach shows both text and values of selected options

Selected Languages:
Texts: JavaScript, Python, Java
Values: js, py, java

Real-time Selection Tracking

You can also track selections in real-time by listening to the change event instead of requiring a button click.

Example

<!DOCTYPE html>
<html>
<head>
   <title>Real-time Selection Tracking</title>
   <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h3>Skills (Real-time tracking)</h3>
   <select id="skillsSelect" multiple style="height: 100px; width: 200px;">
      <option value="html">HTML5</option>
      <option value="css">CSS3</option>
      <option value="js">JavaScript</option>
      <option value="react">React</option>
      <option value="node">Node.js</option>
   </select>
   <div id="skillsDisplay" style="margin-top: 15px; padding: 10px; border: 1px solid #ccc; background-color: #f9f9f9;">
      <strong>Selected Skills: </strong><span id="skillsList">None</span>
   </div>
   
   <script>
      $(document).ready(function() {
         $("#skillsSelect").change(function() {
            var selectedSkills = [];
            $(this).find("option:selected").each(function() {
               selectedSkills.push($(this).text());
            });
            
            var displayText = selectedSkills.length > 0 ? selectedSkills.join(", ") : "None";
            $("#skillsList").text(displayText);
         });
      });
   </script>
</body>
</html>

The selection updates automatically as the user makes changes to their selection.

Comparison of Methods

Method Pros Cons Best Use Case
jQuery :selected Simple syntax, cross-browser compatibility Requires jQuery library Rapid development, existing jQuery projects
JavaScript selectedOptions No external dependencies, native browser support More verbose syntax Lightweight applications, modern browsers
Real-time tracking Immediate feedback, better user experience More event listeners, potential performance impact Interactive forms, live validation

Conclusion

Finding selected options in HTML select elements can be achieved through jQuery's :selected pseudo-selector or JavaScript's native selectedOptions property. For single selections, both methods are straightforward, while multiple selections require iteration through the selected options array. Choose the method that best fits your project's requirements and existing technology stack.

Updated on: 2026-03-16T21:38:54+05:30

554 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements