Aim : Write a program on concept of dynamically changing the menu options in JavaScript.

Ashwin TelmoreAshwin Telmore
3 min read

Aim : Write a program on the concept of dynamically changing the menu options in JavaScript.

Requirements :

  1. Working PC or Laptop ,

  2. Installed any operating system

  3. Any browser (Google Chrome)

  4. Any code Editor(VS Code)

Theory:

The below example shows typical <select> usage. It is given an id attribute to enable it to be associated with a <label> for accessibility purposes, as well as a name attribute to represent the name of the associated data point submitted to the server. Each menu option is defined by an <option> element nested inside the <select>.

        <label for="menu">Select Option</label>
        <select name="menu" id="menu" onchange={handlClicked()}>
            <option value="" class="option">Select Option</option>
            <option value="male" class="option">Male</option>
            <option value="female" class="option">Female</option>
        </select>

Each <option> element should have a value attribute containing the data value to submit to the server when that option is selected. If no value attribute is included, the value defaults to the text contained inside the element. You can include a selected attribute on an <option> element to make it selected by default when the page first loads.

The <select> element has some unique attributes you can use to control it, such as multiple to specify whether multiple options can be selected, and size to specify how many options should be shown at once. It also accepts most of the general form input attributes such as required, disabled, autofocus, etc.

You can further nest <option> elements inside <optgroup> elements to create separate groups of options inside the dropdown.

HTMLSelectElement type

We use the HTMLSelectElement type for interacting with <select>option in JavaScript.

The HTMLSelectElement type contains the following helpful attributes:

  • selectedIndex- This attribute gives a zero-based selected options index. The selectedIndex will be -1 when no option is chosen. When the <select> option permits more than once selections, the selectedIndex gives the first option's value.

  • value- The value attribute gives the value attribute of the initially selected option component if there is a single, otherwise, it will return the empty strings.

  • multiple- The multiple attributes give true when the <select> component permits more than one selection. It is the same as the multiple attributes.

HTMLOptionElement type

The HTMLOptionElement type illustrates the <option> element in JavaScript.

This type contains the following properties:

  • Index- The option's index within the group of options.

  • Selected- It returns a true value if the option is chosen. We set the selected property true for selecting an option.

  • Text- It returns the text of the option.

  • Value- It returns the value attribute of HTML.

Code :

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Practical no 09</title>
</head>

<style>
</style>
<script>
    function handlClicked() {
        var e = document.getElementById("menu");
        var e1 = document.getElementById("menu1");
        var value = e.value; //value of the option
        var value1 = e1.value; //value of the option
        // var text = e.options[e.selectedIndex].text;//inner conte of the element
        console.log(value1);

        const male = ["Ranvir", "Ajay", "Salman"];
        const female = ["Aliya", "Kajal", "Aishwarya "];


        let txt = "";
        if (value == 'male') {
            male.forEach(myFunction);
        } else if (value == 'female') {
            female.forEach(myFunction);
        } else if (value1 == 0) {
            txt = "Select any option";
        }

        let innerOption = '';
        // document.getElementById("mainMenu").innerHTML = txt;
        let inner = '';
        e1.innerHTML = txt;

        function myFunction(v, index, array) {
            txt += `<option value=${index} name=${index}>` + v + "</option>";
        }
    }

    function handlClicked1() {
        var e1 = document.getElementById("menu1");
        var show = document.getElementById("show");
        var value1 = e1.value; //value of the option
        var text = e1.options[e1.selectedIndex].text; //inner conte of the element
        console.log(text);

        let txt = `Welcome ${text}`;
        show.innerHTML = txt;
    }
</script>

<body>
    <div>
        <h1>Dynamically changing the menu</h1>

        <label for="menu">Select Option</label>
        <select name="menu" id="menu" onchange={handlClicked()}>
            <option value="" class="option">Select Option</option>
            <option value="male" class="option">Male</option>
            <option value="female" class="option">Female</option>
        </select>
        <br>

        <label for="menu1"> select another</label>
        <select name="menu1" id="menu1" onchange={handlClicked1()}>
        </select>
        <h1 id="show"></h1>
    </div>
</body>
</html>

Output:

Conclusion :

Finally we can conclude that we have programmed on the concept of dynamically changing the menu options in JavaScript.

5
Subscribe to my newsletter

Read articles from Ashwin Telmore directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Ashwin Telmore
Ashwin Telmore

Greetings, I'm Ashwin Santosh Telmore, a passionate tech enthusiast on a mission to demystify the intricate world of technology. With a background in Computer Engineering and a flair for simplifying the complex, I'm here to share tech knowledge in the easiest and most accessible way. Imagine having your own personal tech guide – that's where I come in! From exploring the wonders of the MERN stack to unraveling the magic behind web development, I'm here to make tech concepts like C++, JavaScript, and Python a walk in the park. Navigating the dynamic realm of web technologies, I've mastered HTML, CSS (SASS), and JavaScript, empowering me to bring websites to life with interactivity. Let's embark on a journey through the ever-evolving tech landscape, making the intricate world of technology understandable for all.