th:在 Thymeleaf 的选择/选项中选择一个数字不起作用

问题描述 投票:0回答:3

我有这个代码

<div th:class="form-group">
    <td><label class="control-label leftMargin10 rightMargin10" scope="col" th:text="#{insertHours.hhFrom}">Attivita'</label></td>
    <td><select class="form-control" th:field="*{hhFrom}">
        <option th:each="i : ${#numbers.sequence(0, 23)}" th:value="${i}" th:text="${i}" th:selected="${ i==9 } ">Options</option>
    </select>
    </td>
</div>

当我尝试在 th:selected 中添加条件时,它不起作用。

我也用这个代码替换了:

th:attr="${i==9}? selected=selected: '' "

但结果是一样的。

HTML

<select class="form-control" id="hhFrom" name="hhFrom">
    <option value="0" selected="selected">0</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
</select> 

提前感谢您的回答

spring spring-mvc thymeleaf
3个回答
19
投票

您不能将

th:field
th:selected
一起使用。 如果将
th:field
替换为
name=someMeaningfullName
,代码将正常工作。

查看 Thymeleaf 论坛上的 this 主题,了解更多信息


9
投票

另一个非常简单且有效的技巧是关闭选择标签:<select ... />



请注意第一行末尾的

/>

<select th:field="*{percentage}" /> <option th:each="i : ${#numbers.sequence(0, 100)}" th:value="${i}" th:text="${i}" th:selected="${i==75}"></option> </select>

渲染为:

<select id="percentage" name="percentage" /> <option value="0">0</option> <option value="1">1</option> ... <option value="74">74</option> <option value="75" selected="selected">75</option> <option value="76">76</option> ... <option value="100">100</option> </select>

网络浏览器和 Thymeleaf 都能很好地处理这个问题。

我用了Thymeleaf v。

3.0.9.RELEASE


    


5
投票
我还发现,如果您在选项字段周围放置

<div>

 标签,selected="selected" 也会起作用。例如

<select th:field="*{name}"> <div> <option disabled="true" selected="selected" value="">Select</option> <option value="1">first</option> <option value="2">second</option> </div> </select>
    
© www.soinside.com 2019 - 2024. All rights reserved.