我很新,不太擅长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,我也尝试使用隐藏输入,但这也没有用。
如果有人知道一种简单的方法来做我需要的事情,我将非常感激。
我确信必须有一种简单的方法来做到这一点,但我无法在任何地方找到它。
答案 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