Search code examples
javascripthtmlhtml-select

select <select> item by value


i have

<select id="x">
    <option value="5">hi</option>
    <option value="7">hi 2</option>
</select>

I want a javascript function that enables me to select and display the <option> as default one by id. In other words, I want to do a setOption(5) and the <option> with the value "5" to be displayed in the combobox as a default .

Is that possible?


Solution

  • If you can, with ES6...

    function setOption(selectElement, value) {
        return [...selectElement.options].some((option, index) => {
            if (option.value == value) {
                selectElement.selectedIndex = index;
                return true;
            }
        });
    }
    

    ...otherwise...

    function setOption(selectElement, value) {
        var options = selectElement.options;
        for (var i = 0, optionsLength = options.length; i < optionsLength; i++) {
            if (options[i].value == value) {
                selectElement.selectedIndex = i;
                return true;
            }
        }
        return false;
    }
    
    setOption(document.getElementById('my-select'), 'b');
    

    See it!

    If it returns false, then the value could not be found :)