hx-confirm
hx-confirm 是 HTMX 提供的一个非常实用的属性,用于在执行 HTMX 请求前弹出确认提示框。
如果用户点击“确认”,请求继续;如果点击“取消”,请求会被阻止。
基本用法
<button hx-delete="/account" hx-confirm="Are you sure you wish to delete your account?">
Delete My Account
</button>
参数详情
触发的事件 hx-confirm 中的明细包含以下附加属性:
- triggeredEvent:触发原始请求的事件
- issueRequest(skipConfirmation=false):可用于确认 AJAX 请求的回调
- question: HTML 元素上 hx-confirm 的属性值
说明
- hx-confirm 可以继承并放置在父元素上
- hx-confirm 默认情况下使用浏览器window.confirm。你可以自定义此行为,如本示例 所示。
- skipConfirmation 可以将布尔值传递给 issueRequest 回调;如果为 true(默认为 false),则window.confirm不会调用并直接发出 AJAX 请求
示例
用在列表数据的删除确认中,可以直接把 hx-confirm 放在 <tbody> 中,这个每行点击删除菜单前都会弹出确认对话框。
<table>
<thead>
<tr>
<th>Index</th>
<th>Title</th>
<th>Actions</th>
</tr>
</thead>
<tbody hx-confirm="Are you sure you want to delete this item?">
<tr>
<td>1</td>
<td>Something1</td>
<td><a href="#" hx-post="/test">Del</a></td>
</tr>
<tr>
<td>2</td>
<td>Something2</td>
<td><a href="#" hx-post="/test">Del</a></td>
</tr>
</tbody>
</table>