3

我是 Thymeleaf 的新手。最近我偶然发现了以下情况。这是我的 Thymeleaf html 页面的一部分:

<!-- an delete button link -->
<a th:href="@{/employees/delete(employeeId=${tempEmployee.emplId},firstName=${tempEmployee.firstName},lastName=${tempEmployee.lastName})}"
    class="btn btn-danger btn-sm py-1 "
    th:onclick="if(!(confirm('Are you sure you want to delete this employee ?') )) return false" >
    Delete
</a>

此代码按预期工作正常。但是,我想添加员工姓名作为确认的一部分。这是代码:

<!-- an delete button link -->
<a th:href="@{/employees/delete(employeeId=${tempEmployee.emplId},firstName=${tempEmployee.firstName},lastName=${tempEmployee.lastName})}"
    class="btn btn-danger btn-sm py-1 "
    th:onclick="if(!(confirm('Are you sure you want to delete this employee ' + '\'+${tempEmployee.firstName}+\'' +'?' ) )) return false" >
    Delete
</a>

不幸的是,结果是: Are you sure you want to delete this employee '+${tempEmployee.firstName}+'.

看起来 Thymeleaf 无法识别 ${tempEmployee.firstName}。它在 th:href 标记中没有问题,但在 th:onclick 中不喜欢它。

如果有人能把我转向正确的方向,我将不胜感激。

4

2 回答 2

4

不确定到底是什么问题(尽管它可能与onclickvs相关th:onclick。无论如何,我认为更像这样的格式会起作用(有一些额外的好处,比如没有 JavaScript 注入)。

<!-- an delete button link -->
<a
  th:href="@{/employees/delete(employeeId=${tempEmployee.emplId},firstName=${tempEmployee.firstName},lastName=${tempEmployee.lastName})}"
  class="btn btn-danger btn-sm py-1 "
  th:data-confirm-delete="|Are you sure you want to delete this employee ${tempEmployee.firstName}?|"
  onclick="if (!confirm(this.getAttribute('data-confirm-delete'))) return false"
>
  Delete
</a>

(注意我正在使用onlick而不是th:onclick.

于 2020-01-30T20:59:01.110 回答
1

而不是上面代码中的这一行---onclick="if (!confirm(this.getAttribute('data-confirm-delete'))) return false">

你可以写成: onclick="return confirm(this.getAttribute('data-confirm-delete'))"

于 2020-11-06T08:53:05.497 回答