在传入flask app之前编辑表单数据

时间:2016-12-20 21:16:10

标签: javascript python forms flask

我有以下多种选择形式,由烧瓶应用程序呈现:

<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;
}

1 个答案:

答案 0 :(得分:2)

  

服务器仅接收第一个选定的选项

您可以正常提交<select id="sports" name="sports" multiple>(不使用JS创建列表)并使用 getlist()

引用python代码中的所有选定选项
sports = request.form.getlist('sports')