Использование переменной thymeleaf в атрибуте onclick

В моем текущем проекте spring -boot у меня есть одно представление с этим html-кодом:

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

в атрибуте onclick, вызов функции upload() должен иметь один параметр, значение которого хранится в переменной тимелеафа ${gallery}.

Кто-нибудь может сказать, как использовать выражение в приведенной выше команде?

Я уже пробовал это:

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

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

Ничего из этого не получилось.

Ответ 1

Я решу эту проблему с этим подходом:

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

Ответ 2

тимелиф 3.0.10-й: onclick Переменная тимелина не работает

Это должно работать:

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

Ответ 3

Это должно работать:

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

Ответ 4

Старые ответы не работают в новой версии 3.0.10. Теперь вам нужно:

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

Ответ 5

В версии 3.0.10 Thymeleaf

использовать [[]] проще, тимелиф отправляет значение в шаблон

если значение является строкой, нет необходимости в кавычках

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

Ответ 6

да, это поздно, но я надеюсь, что это поможет людям, которые в этом нуждаются

попробуйте это

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