主题
wire:confirm
在 Livewire 中执行危险操作之前,你可能希望向用户提供某种视觉确认。
Livewire 通过在任何操作(wire:click、wire:submit 等)之外添加 wire:confirm 使这变得很容易。
这是一个向"删除文章"按钮添加确认对话框的示例:
blade
<button
type="button"
wire:click="delete"
wire:confirm="Are you sure you want to delete this post?"
>
Delete post <!-- [tl! highlight:-2,1] -->
</button>当用户点击"Delete post"时,Livewire 将触发一个确认对话框(默认浏览器确认警告)。如果用户按下 Escape 或点击取消,操作将不会执行。如果他们按下"OK",操作将完成。
提示用户输入
对于更危险的操作,例如完全删除用户帐户,你可能希望向他们提供一个确认提示,他们需要输入特定的字符串来确认操作。
Livewire 提供了一个有用的 .prompt 修饰符,当应用于 wire:confirm 时,它将提示用户输入,并且只有当输入与提供的字符串匹配(区分大小写)时才确认操作(在 wire:confirm 值的末尾用"|"(管道)字符指定):
blade
<button
type="button"
wire:click="delete"
wire:confirm.prompt="Are you sure?\n\nType DELETE to confirm|DELETE"
>
Delete account <!-- [tl! highlight:-2,1] -->
</button>当用户按下"Delete account"时,只有在提示中输入"DELETE"时才会执行操作,否则操作将被取消。
参考
blade
wire:confirm="message"修饰符
| 修饰符 | 描述 |
|---|---|
.prompt | 提示用户输入;格式:"message|expected-input" |