Django模板for循环生成单选列表如何设置首个元素为默认选中项
解决方案
默认单选框组没有任何选项设置checked属性时,会全部处于未选中状态,你只需要给第一个选项的input标签加上该属性即可实现需求,推荐直接用Django模板自带的循环变量实现,无需修改后端代码:
模板修改方法
在你的单选框input标签内添加forloop.first判断,Django模板的for循环内置forloop.first变量,第一次迭代时该值为True,此时输出checked属性即可:
<div class="modal-body"> <form action="#" id="periodeOptionForm"> <div class=" card-body"> <div class="form-group form-elements"> <div class="form-label">Options</div> <div class="custom-controls-stacked"> {% for periode in periodes %} <label class="custom-control custom-radio" id="{{periode.labelle}}"> <input type="radio" class="custom-control-input" name="example-radios" value="{{periode.valeur}}" {% if forloop.first %}checked{% endif %}> <span class="custom-control-label">{{periode.labelle}} </span> </label> {% endfor %} </div> </div> </div> </form> </div>
注意事项
- 你原有代码的label标签存在语法错误:
id'{{periode.labelle}}'缺少等于号,上面的代码已经同步修正为id="{{periode.labelle}}",避免前端渲染异常。 - 如果后续需要默认选中其他指定选项,可以在后端视图中传递默认选中值到模板,将判断条件修改为
{% if periode.valeur == 你传递的默认值变量 %}checked{% endif %}即可。
内容的提问来源于stack exchange,提问作者leauradmin
相关产品推荐
相关产品推荐

