多个复选框一个提交按钮多种形式
Multiple checkboxes one submit button in multiple forms
目前我的提交按钮只在一个对象上,因为它在for循环之外,所以它只会对底层文件进行计算。
但是,如果我将按钮放回循环中,它会为每一行放置一个提交按钮,但它无法对多个文件进行计算,所以我想知道如何获得一个提交按钮对于所有文件,因此它将对每个文件(当前检查过的文件)进行计算
(之前搜索过这个问题,none 之前回答的问题有帮助)
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
)
如果您没有将按钮放在表单中,而是像这样在您的标签后面:
{% 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 事件。
你弄乱了表单和 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>
希望对您有所帮助。
目前我的提交按钮只在一个对象上,因为它在for循环之外,所以它只会对底层文件进行计算。
但是,如果我将按钮放回循环中,它会为每一行放置一个提交按钮,但它无法对多个文件进行计算,所以我想知道如何获得一个提交按钮对于所有文件,因此它将对每个文件(当前检查过的文件)进行计算
(之前搜索过这个问题,none 之前回答的问题有帮助)
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
)
如果您没有将按钮放在表单中,而是像这样在您的标签后面:
{% 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 事件。
你弄乱了表单和 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>
希望对您有所帮助。