【问题标题】:Check inputs with type checkbox with thymeleaf使用百里香叶检查类型复选框的输入
【发布时间】:2015-04-13 19:43:58
【问题描述】:

我一直在玩弹簧靴和百里香;我正在尝试制作一个表格,我将在其中列出数字并由用户选择它们;但是我想“检查”第三个元素(当等于 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="${feat} == 3"> ?

标签: spring-boot thymeleaf


【解决方案1】:

使用th:checked 并避免使用th:field 并包含'name' 属性

<input type="checkbox" th:checked="${feat} == 3" name="features"></input>

额外评论

但正确的方法是避免使用th:checked'name' 属性并坚持使用th:field。但在这种情况下,您必须确保在将其发布到视图之前在控制器中初始化模型属性"features"。在这里,您可以定义默认情况下从控制器本身检查哪个复选框。

但是您的情况似乎有点棘手,因为您想显示复选框的动态列表。所以我更喜欢第一种解决方案。

【讨论】:

  • 感谢 Faraj,您的第一个选项有效!!! :) 这里的代码只是为了解释: 而“features”是我需要提交结果的变量。
  • 这在第一次尝试时对我有用。第一次尝试!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-31
  • 2016-08-14
  • 2015-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多