Переключатель Thymeleaf «th»: проверка поля проверена - PullRequest
0 голосов
/ 01 июня 2019

Я пытаюсь подтвердить ввод переключателя, созданного с помощью th: each. Используя поле th: во входных выходах selected = "флажок" в html, который выбирает одну радиокнопку, которую я не хочу загружать. Если я поставлю name = "field", то этого не произойдет, однако проверка поля не произойдет, поскольку я бы не использовал th: field.

<form th:action="@{/dosomething}" th:object="${Object}" method="post">                                  
<div th:each="op : *{options}"> 
<input type="radio" th:field="*{options}" th:value="${op.id}"     th:id="${opStat.index}"/>                         
<label th:for="${opStat.index}" th:text="${op.optiontext}">Option   Text</label>
<button type="submit">Next</button>                 
</form>

<form action="/dosomething" method="post">                                  
<div>   
<input type="radio" value="1" id="0" name="options" checked="checked"/>                         
<label for="0">A</label>
</div>                                  
<div>   
<input type="radio" value="3" id="1" name="options" checked="checked"/>                         
<label for="1">B</label>
</div>                                  
<div>   
<input type="radio" value="4" id="2" name="options" checked="checked"/>                         
<label for="2">C</label>
</div>                                  
<div>   
<input type="radio" value="2" id="3" name="options" checked="checked"/>                         
<label for="3">D</label>
</div>              
<button type="submit">Next</button>             
</form>

1 Ответ

0 голосов
/ 03 июня 2019

То, как вы используете радио-кнопки, не имеет смысла.Выбранный переключатель - это одно значение, но вы пытаетесь привязать его к массиву: th:field="*{options}" (а не одно поле, например, th:field="*{selectedOpId}").

Ваш th:object долженна нем есть поле для сохранения результатов выбора переключателя, и ваш th:each должен перебирать обычный атрибут модели.Как то так:

<form th:action="@{/dosomething}" th:object="${Object}" method="post">
    <th:block th:each="op : ${options}">
        <input type="radio" th:field="*{chosenOptionId}" th:value="${op.id}" th:id="${opStat.index}"/>                         
        <label th:for="${opStat.index}" th:text="${op.optiontext}">Option Text</label>
    <th:block>

    <button type="submit">Next</button>                 
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...