在 onclick 属性中使用 thymeleaf 变量

Using thymeleaf variable in onclick attribute

在我当前的 spring-boot 项目中,我对这个 html 代码有一个看法:

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

onclick属性中,对函数upload()的调用应该有一个参数,该值存储在thymeleaf变量${gallery}.

任何人都可以告诉我如何使用上面命令中的表达式?

我已经试过了:

None 有效。

这应该有效:

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

我用这种方法解决了这个问题:

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

百里香叶 3.0.10 th:onclick thymeleaf 变量不工作

这应该有效:

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

旧的回复在3.0.10的新版本中不起作用。现在你需要:

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

Thymeleaf 3.0.10 版本

使用[[]]更简单,thymeleaf去模板中注入值

如果值为字符串则不需要引号

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

是的,已经晚了,但我希望这对需要它的人有所帮助

试试这个

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

事实上这个也很管用:

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

如果您要使用 attr,其中有一个字符串 HTML 会崩溃,您必须执行以下操作,以防字符串值。

th:attr="onclick=${'toggleContractLine('+ ''' + contract.id + ''' + ')'}"