使用ASP进行多选下拉列表

时间:2013-01-01 22:47:26

标签: html forms asp-classic

我很新,不太擅长ASP,所以请耐心等待。

在我的HTML表单中,我有一个多选下拉列表,如下所示:

 <span><select id="movieMonster" name="movieMonster" multiple="multiple">
      <option value="">Please select all that apply</option>
      <option value="The Mummy">The Mummy</option>
      <option value="Dracula" selected>Dracula</option>
      <option value="The Wolfman">The Wolfman</option>
      <option value="The Gillman" selected>The Gillman</option>
      <option value="The Wasp Woman">The Wasp Woman</option>
 </select></span>

我已经到处查看并尝试了所有内容,以便在按下提交按钮时将所选项目转移到我的ASP文件中。但是,只有一个值转移过来。

我在ASP中使用以下内容:

 Mnstr = Trim(Upload.Form("movieMonster"))

我能找到的最接近的东西是一些显示所有选定项目的代码,但代码必须在与表单相同的HTML页面上使用。它工作得很好,除了我无法将数据传输到我的ASP。

我找到的代码如下:

 <!DOCTYPE html>
 <html>
 <head>

 <style>
      div { color:red; }
 </style>

 <script src="http://code.jquery.com/jquery-latest.js"></script>

 </head>
 <body>

      <select name="garden" multiple="multiple">
           <option>Flowers</option>
           <option selected="selected">Shrubs</option>
           <option>Trees</option>
           <option selected="selected">Bushes</option>
           <option>Grass</option>
           <option>Dirt</option>
      </select>

      <div></div>

      <script>
           $("select").change(function () {
                var str = "";
                $("select option:selected").each(function () {
                     str += $(this).text() + " ";              
                });
           $("div").text(str);
           })        
           .trigger('change');
      </script>

 </body>
 </html>

上面的<div></div>是打印所选项目的内容。 我已经操作了代码以便为我工作并将div的使用更改为另一个变量,因为我需要,而且这有效。它将打印从多个选择下拉列表中选择的每个项目,但我无法将该信息提供给ASP文件。

由于我无法将信息传递给ASP,我也尝试使用隐藏输入,但这也没有用。

如果有人知道一种简单的方法来做我需要的事情,我将非常感激。

我确信必须有一种简单的方法来做到这一点,但我无法在任何地方找到它。

1 个答案:

答案 0 :(得分:0)

这是上传组件的问题。见:Upload.Form returns only the first selected item of a multi-select control

正如解决方法所示,您必须遍历asp页面中名为movieMonster的表单字段。

你的asp代码应该是这样的:

Mnstr = ""
For Each Item in Upload.Form
  If Item.Name = "movieMonster" Then 
    Mnstr = Mnstr & Item.Value &","
  End If
Next 

'remove the extra comma if there is one
if (trim(Mnstr)<>"") then
    Mnstr = Left(Mnstr,len(Mnstr)-1)
end if