繁体   English   中英

在传递到Flask应用之前编辑表单数据

[英]Editing form data before passing into flask app

我有以下烧瓶应用程序呈现的多选表格:

<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"] ,则列表为["Basketball", "Football", "Golf"] ,如果仅选择["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;
}

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

您可以正常提交<select id="sports" name="sports" multiple> (无需使用JS创建列表),并使用getlist()引用python代码中所有选定的选项

sports = request.form.getlist('sports')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM