2

目前我的提交按钮只在一个对象上,因为它在 for 循环之外,因此它只会对底部文件进行计算。

但是,如果我将按钮放回循环中,它将为每一行放置一个提交按钮,但它无法对多个文件进行计算,所以我想知道如何为所有文件获取一个提交按钮,因此它将为每个文件进行计算(当前已检查过)

(之前搜索过这个问题,之前回答的问题都没有帮助)

HTML 文件(部分)

 {% for f in files %}
 <tr>
     <td>{{ f.key }}</td>
     <td>{{ f.last_modified | datetimeformat }}</td>
     <td>{{ f.key | file_type }}</td>
     <td>
         <form class="download-form" action="{{ url_for('myview.action') }}" method="POST">
             <input type="checkbox" name="key" value="{{ f.key }}">
{% endfor %}
             <button type="submit" name="submit" value="submit">Submit</button>
         </form>
     </td>
 </tr>

Python 文件(部分)

@expose('/', methods=['POST', 'GET'])
@appbuilder.app.route('/', methods=['POST', 'GET'])
def action(self):

    my_bucket = get_bucket()
    s = my_bucket.objects.all()
    t = getmyobject()

    return render_template(
        'page.html',
        my_bucket=my_bucket,
        base_template=appbuilder.base_template,
        appbuilder=appbuilder,
        page=s, t=t
    )
4

2 回答 2

0

如果您不将按钮放在表单中,而是在您的表格之后,如下所示:

{% for f in files %}
 <tr>
     <td>{{ f.key }}</td>
     <td>{{ f.last_modified | datetimeformat }}</td>
     <td>{{ f.key | file_type }}</td>
     <td>
          <input type="checkbox" name="key" value="{{ f.key }}">
     </td>
 </tr>
{% endfor %}
<button type="submit" name="submit" value="submit">Submit</button>

然后你可以用JS收集每个选中的输入字段的值并提交它们。

要提交,您将在按钮上使用 onclick 事件。

于 2018-08-09T08:52:52.420 回答
0

您将表单和 for 循环弄乱了,尝试像这样将 for 循环放在表单标签内,并在表单内和 for 循环关闭后添加按钮。

 <form class="download-form" action="{{ url_for('myview.action') }}" method="POST">
     {% for f in files %}
         <tr>
             <td>{{ f.key }}</td>
             <td>{{ f.last_modified | datetimeformat }}</td>
             <td>{{ f.key | file_type }}</td>
             <td><input type="checkbox" name="key" value="{{ f.key }}"></td>
         </tr>
    {% endfor %}
    <button type="submit" name="submit" value="submit">Submit</button>
</form>

希望能帮助到你。

于 2018-08-09T09:18:53.743 回答