如果不存在,添加选项以下拉值?

时间:2012-12-21 21:16:01

标签: javascript

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

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

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

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;

        }
    }
}

1 个答案:

答案 0 :(得分:4)

如果发现任何匹配,您可以使用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"));

}