【发布时间】:2016-12-20 21:16:09
【问题描述】:
我有以下由烧瓶应用程序呈现的多选表单:
<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>
我正在尝试将数据以列表的形式发送到服务器/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;
}
【问题讨论】:
-
你的表单在服务器端怎么样?
-
不是。表单驻留在烧瓶应用程序呈现的模板中。
-
您有一些处理表单的 python 代码。例如,在某些观点中,对吗?
-
是的,但我认为 python 代码不会影响这里的任何东西。数据必须在到达服务器之前推送到列表中,对吗?我基本上是使用运动列表来查阅数据库并将一些数据投影到前端。
-
您必须将数据插入到实际表单中,随机 javascript 变量不会随已发布的表单数据一起移动。尝试在表单中添加一个隐藏元素,然后使用事件处理程序设置该元素的值。
标签: javascript python forms flask