Search code examples
javascriptselectedindex

How to set selectedIndex of select element using display text?


How to set selectedIndex of select element using display text as reference?

Example:

<input id="AnimalToFind" type="text" />
<select id="Animals">
    <option value="0">Chicken</option>
    <option value="1">Crocodile</option>
    <option value="2">Monkey</option>
</select>
<input type="button" onclick="SelectAnimal()" />

<script type="text/javascript">
    function SelectAnimal()
    {
        //Set selected option of Animals based on AnimalToFind value...
    }
 </script>

Is there any other way to do this without a loop? You know, I'm thinking of a built-in JavaScript code or something. Also, I don't use jQuery...


Solution

  • Try this:

    function SelectAnimal() {
        var sel = document.getElementById('Animals');
        var val = document.getElementById('AnimalToFind').value;
        for(var i = 0, j = sel.options.length; i < j; ++i) {
            if(sel.options[i].innerHTML === val) {
               sel.selectedIndex = i;
               break;
            }
        }
    }