1

我是新手,不太擅长 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,因此我也尝试使用隐藏输入,但这也不起作用。

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

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

4

1 回答 1

0

这是上传组件的问题。请参阅:Upload.Form 仅返回多选控件的第一个选定项

As the workaround suggests, you will have to loop through the form fields named movieMonster in your asp page.

Your asp code should be something like :

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
于 2013-01-02T05:59:12.437 回答