2013-03-05 138 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

相关问题