我试图发布所有选中的输入复选框。输入字段由django的for循环生成,如下所示。
从我到目前为止发现的情况来看,下面应该有效。我相信问题可能在于输入字段是通过forloop生成的,如果是这样的话,我该如何解决这个问题呢?对于每个值添加到列表并使用js发布?
{% for q in list %}
{% if forloop.last %}
<form method="POST" name="selectedchecks"> {% csrf_token %}
<div class="qblock">
<label class="pure-material-checkbox">
<input class="selectedchecks" type="checkbox" name="choices[]" value="{{ q }}">
<span>
<p>{{ q }}</p>
</span>
</label>
</div>
</form>
{% endif %}
{% endfor %}
if request.method == 'POST':
selected_list = request.POST.getlist('choices[]')
如果选中第一个复选框,则仅返回{{q}}的第一个值,如果选择除第一个复选框之外的任何其他复选框,则不返回任何内容(空列表)。选中所有复选框也只返回第一个值。
它应该POST所有选中的复选框值。
任何帮助表示赞赏!
UPDATE
问题是表单正在为每个循环迭代重新初始化。在循环之前设置<form>
标记解决了问题!