Using thymeleaf variable in onclick attribute

2020-05-20 05:10发布

问题:

In my current spring-boot project, I have one view with this html code:

<button type="button" class="btn btn-primary" onclick="upload()" th:utext="#{modal.save}"></button>

in the onclick attribute, the call for the function upload() should have one parameter, which value is stored in the thymeleaf variable ${gallery}.

Anyone can tell mehow to use the expression in the above command?

I already try this:

  • th:onclick="upload(${gallery)"

  • th:attr="onclick=upload(${gallery)"

None of this worked.

回答1:

I solve this issue with this approach:

th:onclick="|upload('${command['class'].simpleName}', '${gallery}')|"


回答2:

thymeleaf 3.0.10 th:onclick thymeleaf variable not working

This should work:

th:attr="onclick=|upload('${gallery}')|" 


回答3:

This should work:

<button th:onclick="'javascript:upload(' + ${gallery} + ')'"></button>


回答4:

The older replies does not work in the new version of 3.0.10. Now you need:

<button th:data-id="${quartzInfo.id}" 
    onclick="del(this,this.getAttribute('data-id'))" type="button">
</button>


回答5:

In 3.0.10 version of Thymeleaf

use [[ ]] it's more easier , thymeleaf goes to inject the value in template

if the value is string no quote need

<button th:data-id="${quartzInfo.id}" 
    th:onclick="del(this,[[${quartzInfo.id}]]" type="button">
</button>


回答6:

yes it's to late, but i hope this will help people who need it

try this

th:onclick="'upload('+${gallery}+')'"