2012-12-21 54 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")); 

} 
相關問題