2013-03-05 68 views
0

我如何讓我的選擇列表填充用戶輸入的新選項?Javascript:如何從文本框創建選擇列表選項?

這裏是我的JS到目前爲止它:

<script type="text/javascript"> 
function show_prompt() { 
    var name = prompt('Please enter new origin'); 
    if (name != null && name != "") { 
     var select = document.getElementById("OriginSelect"); 
     select.options[select.options.length] = new Option('Text 1', 'Value1'); 
    } 
} 

下面是HTML \ ColdFusion的下面倒在身上:

<p class="_30NP" align="right"> 
           <label>Origin&nbsp;</label> 
          </p> 

          <p class="_20NP"> 
           <cfselect name="OriginSelect" id="OriginSelect" query="Origin" display="description" value="code" required="yes"> 
           <option id="new" value="new" onClick="show_prompt()">New Origin</option> 
           </cfselect> 
          </p> 

          <a href="#" onClick="show_prompt()">New Origin</a> 

所以基本上,該列表會從填充數據庫,但是當沒有合適的Origin可用時,用戶可以單擊href並出現帶有文本字段的提示框(此工作正常)。然後用戶可以輸入他喜歡的任何內容,然後JS腳本爲標籤添加一個新元素。

但是,在用戶輸入文本並點擊「確定」後,它不會執行任何操作。 Chrome瀏覽器中的javascript調試器沒有顯示任何有用的信息,也沒有標記任何錯誤。

事實上,它是一個選擇問題?我自己手動添加了一個選項(id =「new」),它顯示得很好。

編輯:好吧,這不是cfselect的錯。我把它做成一個常規選擇框,它仍然是行不通的..

回答

0

使用appendChild功能

function show_prompt() { 
    var name = prompt('Please enter new origin'); 
    if (name != null && name != "") { 
     var select = document.getElementById("OriginSelect"); 
     var option = new Option(name); 
     select.appendChild(option); 
    } 
} 
+0

這恐怕會導致同一個與我提供的代碼。它沒有按」 t做任何事情=( – 2013-03-05 21:00:01

+0

你確定嗎?請檢查http://jsbin.com/ocehob/2/edit – Diode 2013-03-05 21:03:40

+0

它絕對在那裏工作大聲笑,但在我的服務器上它不工作..有什麼干擾它。 這很令人沮喪,我沒有從JS控制檯得到任何反饋,也沒有得到任何關於什麼可能會搞砸的反饋 – 2013-03-05 21:05:51

相關問題