How to implement dependent selects with Fetch in your project

Diego Cortés
Diego Cortés
September 14, 2025
How to implement dependent selects with Fetch in your project

The interaction between different form elements is key in web application development. One of the most common examples is the use of dependent selectors, where the selection of one element determines the available options in another. In this article, I will explain how to implement dependent selects in your project using Fetch, thus ensuring a smooth and dynamic user experience.

What are dependent selects?

Dependent selects are those form elements that adjust their options based on what the user selects in another field. This type of interactivity is essential in applications where the information is hierarchically related, such as in product registration forms, location selection, among others.

Practical example of dependent selects

Imagine you are creating a form for users to select a country and, based on that selection, be able to choose a specific city from that country. Thus, different cities will be displayed depending on the selected country, improving usability.

Using Fetch to obtain data

To implement dependent selects in your project, you will need to use Fetch, a modern JavaScript API that allows you to make requests to a server to obtain data. Below, I will present the basic steps to do it.

Step 1: Create the basic HTML

First, you will need to define the HTML structure of your selectors. Here is a simple example:

<select id="country">
    <option value="">Select a country</option>
    <option value="argentina">Argentina</option>
    <option value="mexico">Mexico</option>
</select>

<select id="city">
    <option value="">Select a city</option>
</select>

Step 2: Capture the change in the first select

Use a change event to capture the selection of the country. This can be done in JavaScript as follows:

document.getElementById('country').addEventListener('change', function() {
    const country = this.value;
    fetchCities(country);
});

Step 3: Implement the Fetch function

Define the function fetchCities that will handle the call to a server to get the cities corresponding to the selected country. Here is an example of what the function might look like:

function fetchCities(country) {
    fetch(`https://api.example.com/cities?country=${country}`)
        .then(response => response.json())
        .then(data => {
            const citySelect = document.getElementById('city');
            citySelect.innerHTML = '<option value="">Select a city</option>'; // Clear previous options

            data.cities.forEach(city => {
                const option = document.createElement('option');
                option.value = city.value;
                option.text = city.name;
                citySelect.appendChild(option);
            });
        })
        .catch(error => console.error('Error fetching cities:', error));
}

Step 4: Test and adjust

Once you have implemented this code, test your form. Make sure that when selecting a country, the cities load correctly in the second selector. You can adjust the styles and behavior according to your needs.

Conclusion

The implementation of dependent selects can significantly enrich the user experience of your web application. By using Fetch, you can effectively communicate with a server to obtain the necessary information, thus maintaining a clear and efficient workflow.

For more information on related topics and to discover web development strategies, I invite you to visit more news on my blog. Your next great idea could be just a click away!

Article information

Published: September 14, 2025
Category: Web Development
Reading time: 5-8 minutes
Difficulty: Intermediate

Key tips

1

Take your time to understand each concept before moving on to the next one.

2

Practice the examples in your own development environment for better understanding.

3

Don't hesitate to review the additional resources mentioned in the article.

Diego Cortés
Diego Cortés
Full Stack Developer, SEO Specialist with Expertise in Laravel & Vue.js and 3D Generalist

Frequently Asked Questions

Categories

Page loaded in 26.89 ms