Skip to main content

Dependent Dropdowns includes a modal to display results

Dependent Dropdown

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Dependent Dropdown</title>

    <style>

        body {

            font-family: Arial, sans-serif;

            margin: 20px;

        }


        label {

            display: block;

            margin-bottom: 8px;

        }


        select {

            width: 100%;

            padding: 8px;

            margin-bottom: 16px;

        }


        button {

            padding: 10px;

            background-color: #4CAF50;

            color: white;

            border: none;

            cursor: pointer;

        }


        .modal {

            display: none;

            position: fixed;

            top: 0;

            left: 0;

            width: 100%;

            height: 100%;

            background-color: rgba(0,0,0,0.7);

            justify-content: center;

            align-items: center;

        }


        .modal-content {

            background-color: #fefefe;

            padding: 20px;

            border-radius: 5px;

            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);

        }

    </style>

</head>

<body>


    <label for="state">Select State:</label>

    <select id="state" onchange="populateDistricts()">

        <option value="maharashtra">Maharashtra</option>

        <option value="karnataka">Karnataka</option>

        <!-- Add more states as needed -->

    </select>


    <label for="district">Select District:</label>

    <select id="district"></select>


    <button onclick="showResults()">Show Results</button>


    <div class="modal" id="resultModal">

        <div class="modal-content">

            <span onclick="closeModal()" style="float: right; cursor: pointer;">&times;</span>

            <h2>Results</h2>

            <p id="resultText"></p>

        </div>

    </div>


    <script>

        function populateDistricts() {

            const stateSelect = document.getElementById("state");

            const districtSelect = document.getElementById("district");

            const selectedState = stateSelect.value;


            // Clear previous options

            districtSelect.innerHTML = '';


            // Populate districts based on the selected state

            if (selectedState === "maharashtra") {

                const districts = ["Mumbai", "Pune", "Nagpur", "Nashik"];

                populateOptions(districts, districtSelect);

            } else if (selectedState === "karnataka") {

                const districts = ["Bangalore", "Mysuru", "Hubli", "Mangalore"];

                populateOptions(districts, districtSelect);

            }

            // Add more states and districts as needed

        }


        function populateOptions(options, selectElement) {

            options.forEach(option => {

                const optionElement = document.createElement("option");

                optionElement.value = option.toLowerCase();

                optionElement.text = option;

                selectElement.appendChild(optionElement);

            });

        }


        function showResults() {

            const districtSelect = document.getElementById("district");

            const resultText = document.getElementById("resultText");

            const selectedDistrict = districtSelect.value;


            // Add your logic to fetch and display results based on the selected district

            resultText.textContent = `Results for ${selectedDistrict}`;


            // Show modal

            const modal = document.getElementById("resultModal");

            modal.style.display = "flex";

        }


        function closeModal() {

            const modal = document.getElementById("resultModal");

            modal.style.display = "none";

        }


        // Close modal if clicked outside the modal content

        window.onclick = function(event) {

            const modal = document.getElementById("resultModal");

            if (event.target === modal) {

                modal.style.display = "none";

            }

        };

    </script>


</body>

</html>


HTML Structure:

1. State and District Dropdowns:

   - The HTML includes two dropdowns: one for selecting the state (`<select id="state">`) and another for selecting the district (`<select id="district">`).

   - The state dropdown has hardcoded options for Maharashtra and Karnataka. You can add more states and their corresponding districts as needed.


2. Show Results Button:

   - A button (`<button onclick="showResults()">Show Results</button>`) triggers the `showResults` function when clicked.


3. Modal for Results:

   - There's a hidden modal (`<div class="modal" id="resultModal">`) that will display the results.

   - Inside the modal, there's a close button (`&times;`) and a content area (`<div class="modal-content">`) where the results will be displayed.


CSS Styles:

1. Basic Styling:

   - The CSS styles define the appearance of the page, dropdowns, button, and modal. It ensures a simple and responsive design.


JavaScript Functions:

1. populateDistricts` Function:

   - This function is called when the state dropdown changes.

   - It clears the previous options in the district dropdown and populates it based on the selected state.

   - The districts are hardcoded for Maharashtra and Karnataka. You should replace them with your actual data.


2. populateOptions` Function:

   - A helper function used by `populateDistricts` to populate options in a dropdown.


3. showResults` Function:

   - This function is called when the "Show Results" button is clicked.

   - It fetches the selected district and displays a simple text result in the modal content area.

   - You should replace the text result with your actual logic for fetching and displaying results.


4. closeModal` Function:

   - Closes the modal when called.


5. Window Click Event:

   - Closes the modal if the user clicks outside the modal content.

 Final Notes:

- The code provides a basic structure for dependent dropdowns and a modal for displaying results.

- You need to replace the hardcoded data with your actual data and implement the logic for fetching and displaying results in the `showResults` function.

- Customize the styling and layout according to your design preferences.

Comments

Popular posts from this blog

Free Online HTML CSS JavaScript Editor with Live Preview (No Signup)

CodePlay – live HTML/CSS/JS preview CodePlay live Dark mode HTML CSS JavaScript Preview Hello, World! ๐Ÿ‘‹ Click me body { font-family: system-ui, sans-serif; padding: 2rem; background: #f0f4fa; color: #1e1e2f; } button { background: #007bff; color: white; border: none; padding: 10px 24px; border-radius: 8px; font-size: 1rem; cursor: pointer; } button:hover { background: #0056b3; } #message { font-weight: 600; margin-top: 12px; } document.getElementById('myBtn').addEventListener('click', function() { document.getElementById('message').textContent = '✨ You clicked the button! ✨'; }); Update Prev...

Complaint Letter

Here's an example of a Complaint Letter. Remember to tailor it to your specific situation and provide all relevant details: [Your Name] [Your Address] [City, State, ZIP Code] [Email Address] [Phone Number] [Date] [Recipient's Name] [Title (if applicable)] [Company/Organization Name] [Address] [City, State, ZIP Code] Subject: [Brief description of the complaint] Dear [Recipient's Name], I hope this letter finds you well. I am writing to express my dissatisfaction with [product/service] that I recently purchased/received from [company/organization name]. I believe it is important to bring this matter to your attention in the hope that it can be resolved promptly and amicably. On [date], I [purchased/received] [details of the product/service, including any order/reference numbers]. Unfortunately, my experience has been less than satisfactory due to the following issues: 1. [Clearly state the first issue]    - [Provide specific details, such as dates, times, and names if applic...

เคฐूเคช เคšเคคुเคฐ्เคฆเคถी เค•्เคฏा เคนै?

เคฐूเคช เคšเคคुเคฐ्เคฆเคถी เคนिंเคฆू เคชंเคšांเค— เคฎें เค•ाเคฐ्เคคिเค• เคฎाเคธ เค•े เค•ृเคท्เคฃ เคชเค•्เคท เค•ी เคšเคคुเคฐ्เคฆเคถी (เค…เคฎाเคตเคธ्เคฏा เคธे เคเค• เคฆिเคจ เคชเคนเคฒे) เค•ो เคฎเคจाเคฏा เคœाเคจे เคตाเคฒा เคเค• เคฎเคนเคค्เคตเคชूเคฐ्เคฃ เคฆिเคจ เคนै। เคฏเคน เคฆिเคตाเคฒी เค•े เคฎुเค–्เคฏ เคฆिเคจ เคธे เค ीเค• เคชเคนเคฒे เค”เคฐ เคจเคฐเค• เคšเคคुเคฐ्เคฆเคถी เคฏा เค›ोเคŸी เคฆिเคตाเคฒी เค•े เคธเคฎाเคจ เคนी เคชเคก़เคคा เคนै। "เคฐूเคช" เคถเคฌ्เคฆ เค•ा เค…เคฐ्เคฅ เคนै "เคธुंเคฆเคฐเคคा" เคฏा "เค•ांเคคि", เค”เคฐ "เคšเคคुเคฐ्เคฆเคถी" เค•ा เค…เคฐ्เคฅ เคนै "เคšौเคฆเคนเคตाँ เคฆिเคจ"। เค‡เคธ เคช्เคฐเค•ाเคฐ, เคฏเคน เคฎूเคฒ เคฐूเคช เคธे "เคธुंเคฆเคฐเคคा เค•ा เคšौเคฆเคนเคตाँ เคฆिเคจ" เคนै।  เคฎเคนเคค्เคต เค”เคฐ เค•เคฅाเคँ เค‡เคธ เคฆिเคจ เค•े เคฆो เคช्เคฐเคฎुเค– เคฎเคนเคค्เคต เคนैं - เคเค• เค†เคง्เคฏाเคค्เคฎिเค• เค”เคฐ เคเค• เคชौเคฐाเคฃिเค•। 1. เคฐाเคœा เคฌเคฒि เค•ी เค•เคฅा (เคจเคฐเค• เคšเคคुเคฐ्เคฆเคถी เคธे เคœुเคก़ी): เค‡เคธ เคฆिเคจ เคธे เคœुเคก़ी เคธเคฌเคธे เคช्เคฐเคšเคฒिเคค เค•เคฅा เคญเค—เคตाเคจ เค•ृเคท्เคฃ เคฆ्เคตाเคฐा เคฐाเค•्เคทเคธ เคจเคฐเค•ाเคธुเคฐ เค•े เคตเคง เค•ी เคนै। เคจเคฐเค•ाเคธुเคฐ เคเค• เคถเค•्เคคिเคถाเคฒी เค”เคฐ เค…เคค्เคฏाเคšाเคฐी เคฐाเค•्เคทเคธ เคฅा เคœिเคธเคจे 16,000 เคฐाเคœเค•ुเคฎाเคฐिเคฏों เค•ो เคฌंเคฆी เคฌเคจा เคฐเค–ा เคฅा। เค‰เคธเค•ी เคฎाँ, เคญूเคฆेเคตी, เคจे เค‰เคธเค•े เค•เคฒ्เคฏाเคฃ เค•े เคฒिเค เคช्เคฐाเคฐ्เคฅเคจा เค•ी। เค•ृเคท्เคฃ (เค”เคฐ เค‰เคจเค•ी เคชเคค्เคจी เคธเคค्เคฏเคญाเคฎा) เค•े เคนाเคฅों เคฎृเคค्เคฏु เคนोเคจे เคชเคฐ, เคจเคฐเค•ाเคธुเคฐ เค•ो เค…เคชเคจी เค—เคฒเคคिเคฏों เค•ा เคเคนเคธाเคธ เคนुเค†। เคฎเคฐเคจे เคธे เคชเคนเคฒे, เค‰เคธเคจे เคตिเคจเคคी เค•ी เค•ि เค‰เคธเค•ी เคฎृเคค्เคฏु เค•ा เคถोเค• เคจ เคฎเคจाเค•เคฐ เคฆीเคช เคœเคฒाเค•เคฐ เค‰เคค्เคธเคต เคฎเคจाเคฏा เคœाเค। เค‡เคธीเคฒिเค เคฏเคน เคฆिเคจ เคฆीเคฏे เคœเคฒाเคจे เค”เคฐ เค‰เคค्เคธเคต เค•े เคธाเคฅ เคšिเคน्เคจिเคค เคนै, เคœो ...