2

如何修改下面的代码以允许将新值添加到下拉列表中,如果在下拉框中找不到指定的值?

现在,我使用下面的给定函数在下拉框中查找给定值(option_name)。

我想修改否定标志 (!flag),而不是提醒我它没有找到 option_name,而是基本上在现有下拉列表中添加新的 option_name。

IE。

get_position( 'drop', 'flower' ) 


<select id="drop" style="width: 200px;">
    <option value="0"></option>
    <option value="1">apples</option>
    <option value="2">oranges</option>
    <option value="3">pears</option>
    <option value="4">mangos</option>
    <option value="5">bananas</option>
    <option value="6">kiwis</option>
</select>

function get_position(id,option_name) {

    var flag = false;

    for ( var i=0; i <= document.getElementById(id).options.length - 1; i++ ) {

        if (document.getElementById(id).options[i].text === option_name)  {

            document.getElementById(id).selectedIndex = i; 
            flag = true;

        }
    }
}
4

1 回答 1

5

如果找到任何匹配项,您可以使用 return false 然后添加记录

   function get_position(id,option_name) {

                var flag = false;
            var length=document.getElementById(id).options.length;
                for ( var i=0; i <= length - 1; i++ ) {

                    if (document.getElementById(id).options[i].text == option_name)  {

                        document.getElementById(id).selectedIndex = i; 
                       return false;
                    } 
           }
              //add item on drop down now 
                document.getElementById(id).options[length] = new Option( txt, length );
                document.getElementById(id).selectedIndex = length;

            }

如果你可以使用 Jquery 那么像这样的东西

if($("#id option:contains('option_name')").length ==0)
{

$("#id").append(new Option("option text", "value"));

}
于 2012-12-21T21:37:15.960 回答