我有以下多种选择形式,由烧瓶应用程序呈现:
<form method="POST" action="">
<label for="sports">Sports:</label>
<select id="sports" name="sports" multiple>
<option value="Basketball">Basketball</option>
<option value="Football">Football</option>
<option value="Baseball">Baseball</option>
<option value="Golf">Golf</option>
<option value="Soccer">Soccer</option>
</select>
<input type="submit" name="send" onclick="var selected_sports = project.getSelectedValues(document.querySelector('#sports'));">
</form>
我正在尝试以列表的形式将数据发送到server / python代码。
例如,如果您选择篮球,足球和高尔夫,则列表将为["Basketball", "Football", "Golf"]
,如果您只选择足球,则列表将为["Football"]
。
我可以使用javascript(下面的代码)创建列表,但我不确定如何将此创建的列表传递给服务器(服务器只接收第一个选定的选项)。
用于创建所选值列表的JS代码(单击提交按钮时以HTML格式调用):
project = {};
project.getSelectedValues = function (selectTag) {
var result = [];
var options = selectTag && selectTag.options;
for (var = 0; i < options.length; i++) {
if (options[i].selected) {
result.push(options[i].value || options[i].text);
}
}
return result;
}
答案 0 :(得分:2)
服务器仅接收第一个选定的选项
您可以正常提交<select id="sports" name="sports" multiple>
(不使用JS创建列表)并使用 getlist()
sports = request.form.getlist('sports')