内容
确认请求
通常,你需要在发出请求之前确认操作。htmx 支持该hx-confirm 属性,允许你使用简单的 javascript 对话框确认操作:
<button hx-delete="/account" hx-confirm="Are you sure you wish to delete your account?">
Delete My Account
</button>
使用事件,你可以实现更复杂的确认对话框。确认示例 显示了如何使用sweetalert2库来确认 htmx 操作。
使用事件确认请求
另一个确认选项是通过htmx:confirm事件。此事件在请求的每个触发器上触发(而不仅仅是在具有hx-confirm属性的元素上),可用于实现请求的异步确认。
下面是对带有属性的任何元素使用甜蜜警报的示例confirm-with-sweet-alert='true':
document.body.addEventListener('htmx:confirm', function(evt) {
if (evt.target.matches("[confirm-with-sweet-alert='true']")) {
evt.preventDefault();
swal({
title: "Are you sure?",
text: "Are you sure you are sure?",
icon: "warning",
buttons: true,
dangerMode: true,
}).then((confirmed) => {
if (confirmed) {
evt.detail.issueRequest();
}
});
}
});