我一直在玩spring boot和thyme。我正在尝试做一个表单,其中我将列出数字,而用户将选择它们;但是我想“检查”第三个元素(当等于3时),但我看不到输入已被检查。
我在加载信息和显示复选框时没有问题,当页面加载时我想默认检查其中一个时,问题就来了。
我需要一些帮助来确定应该是什么问题,或者是th:checked属性的错误。
我在控制器中有这个
@ModelAttribute("allFeatures") public List<Integer> populateFeatures() { return Arrays.asList(1, 2, 3, 4, 5, 6); }
这是HTML代码
<ul> <li th:each="feat : ${allFeatures}"> <input type="checkbox" th:field="*{features}" th:value="${feat}" th:checked="${feat == 3}"></input> <label th:for="${#ids.prev('features')}" th:text="${'seedstarter.feature.' + feat}">Electric Heating</label> </li> <li th:remove="all"> <input id="removed1" type="checkbox"/> <label for="removed1">Turf</label> </li> </ul>
提前致谢。
使用th:checked并避免th:field和包含'name'属性
th:checked
th:field
'name'
<input type="checkbox" th:checked="${feat} == 3" name="features"></input>
额外评论
但是,正确的方法将是避免th:checked和'name'归因并粘到th:field。但是在那种情况下,您必须确保"features"在将控制器的模型属性发布到视图之前对其进行初始化。在这里,您可以定义默认情况下要从控制器本身选中的复选框。
"features"
但是,由于要显示复选框的动态列表,您的情况似乎有些棘手。所以我更喜欢第一个解决方案。