2012-12-21 34 views
2

如何修改下面的代码,以便在下拉列表中找到指定的值时,允许将新值添加到下拉列表中?添加选项以降低价值,如果它不存在?

现在,我使用下面给出的函数在下拉框中查找给定值(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; 

     } 
    } 
} 
+0

一些事情是jQuery的可能性? – yckart

+1

[相关的MDN示例在这里](https://developer.mozilla.org/en-US/docs/DOM/HTMLSelectElement#add()) –

回答

4

可以使用返回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")); 

} 
相关问题