htmx: Confirming actions, and prompts

A handy utility in htmx is hx-confirm which allows you to let the user confirm an action.

For example you have a delete button to delete an item in a list, and you don’t want the user to lose data if accidentally pressing the button.

So you add hx-confirm, adding some confirmation text:

<ul>
  {tasks.map(task => 
    <li>
      Task: {task.name}
      <button
        hx-confirm="Are you sure?"
        hx-target="closest li"
        hx-swap="outerHTML"
        hx-delete={`/task/${task.id}`}>
        Delete
      </button>
    </li>
  )}
</ul>

(Notice I used some Astro templating to print the tasks list, to show you how I used this feature).

You can also ask for some information to the user in a prompt, using hx-prompt:

<button hx-delete="/project" hx-prompt="Enter the project name to confirm">
  Delete project
</button>

This information is sent in the HX-Prompt HTTP request header.

Lessons in this unit:

0: Introduction
1: Why htmx
2: The core idea of htmx
3: Installing htmx
4: Doing a GET request
5: Swap
6: POST request
7: Targets
8: Loading indicator
9: ▶︎ Confirming actions, and prompts
10: Triggers
11: Request headers
12: Response headers
13: Events
Are you intimidated by Git? Can’t figure out merge vs rebase? Are you afraid of screwing up something any time you have to do something in Git? Do you rely on ChatGPT or random people’s answer on StackOverflow to fix your problems? Your coworkers are tired of explaining Git to you all the time? Git is something we all need to use, but few of us really master it. I created this course to improve your Git (and GitHub) knowledge at a radical level. Launching May 21, 2024. Join the waiting list!