Thymeleaf - How to add checked attribute to input conditionally
After digging a little, I found out the solution. There is th:checked
attribute for that purpose.
This works:
<input type="checkbox" name="mycheckbox" th:checked="${flag} ? 'checked'">
This fails:
<input type="checkbox" name="mycheckbox" th:checked="${flag} ? 'checked' : ''">
If checked=""
is set to input
component, it's marked checked. This method is valid for custom attributesth:attr
also. Consider following example:
<p th:attr="customattr=${flag}?'attr'></p>
If flag
is true, it's replaced with:
<p customattr="attr"></p>
If flag
is false, it's replaced with:
<p></p>
According to the official thymeleaf documentation
http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#fixed-value-boolean-attributes
th:checked
is considered as a fixed-value Boolean attribute.
<input type="checkbox" name="active" th:checked="${user.active}" />
Where user.active
should be a boolean
.
So in your case it should be as Andrea mentioned,
<input type="checkbox" name="mycheckbox" th:checked="${flag}" />
You can conditionally add checked attribute to radio input in thymeleaf as below:
<input type="radio" th:checked="${sales.sales_head.sales_type} == CREDIT" class="sales_type" value="CREDIT" name="sales_type" >
Here if sales_type is CREDIT the radio will be checked. Otherwise it remains unchecked.