2013-07-23 88 views
0

我似乎無法完全弄清楚這一點。動態添加選項到選擇框不要刪除

但是,我的功能正如他們應該那樣工作,有一個差異,當從輸入框動態添加選項值,並且我點擊[list1]中的刪除鍵時,它們不會被刪除。但是,如果選項值是靜態添加的,那麼它們應該按照他們的要求刪除。有任何想法嗎?

我真的很抓撓我的頭。

<!DOCTYPE html> 

<html> 

<head> 
<script type="text/javascript"> 

function add_refdoc() { 

    var x = document.getElementById("list1"); 

    var option = document.createElement("option"); 

    var input = document.getElementById('refdocs_input') 

    option.text = input.value 

    x.add(option,x.option) 

    x.selectedIndex = x.options.length - 1; 
} 


function del_refdoc(e) { 
    var evt = e ? e : event; 
    var sel = evt.target ? evt.target : evt.srcElement; 
    if(evt.keyCode && evt.keyCode == 46 || evt.which == 46) { 
     var val = sel.value; 
     var opts = sel.getElementsByTagName("option"); 
     if(val != "") { 
      for(var i=0; i<opts.length; i++) { 
       if(val == opts[i].value) 
        sel.removeChild(opts[i]); 
       } 
     } 
    } 
} 

</script> 


</head> 

<body> 
<input id="refdocs_input" type="text"/> 

<input value="add" type="button" onclick="add_refdoc()"/> 

<br> 
<select onkeydown="del_refdoc(event)" style="width: 250px;" id="list1"></select> 

<br><br> 

<select onkeydown="del_refdoc(event)" style="width: 250px;" id="list2"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
</select> 

</body> 

</html> 
+1

添加一些'console.log'的方法來檢查你的變量聲明... – Sebas

+0

可能是由於使用''