As you know, input
component has an attribute, checked
to whether mark the checkbox as enabled by default or not.
<input type="checkbox" name="mycheckbox" checked="checked"/>
To disable the checkbox by default, the checked
exception should be declared. Is it possible to set checked
attribute by a flag in Thymeleaf?
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}" />
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>
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.
Neither suggested solutions worked for me.
This one worked:
th:checked="${#strings.equals(param.myRequestParameterXYZ, 'foobar')}"
来源:https://stackoverflow.com/questions/29826576/thymeleaf-how-to-add-checked-attribute-to-input-conditionally