Skip to content

Confirmation Before Submit

A practical guide to confirmation dialogs for consequential form submissions, with validation-first flow and clear post-submit feedback.

Introduction

A confirmation step is not a replacement for validation. It is an intent check for actions that are expensive, hard to reverse, or easy to trigger by mistake. In everyday Wappler work, that usually means payment-like actions, important account changes, or submissions that launch a consequential server-side workflow.

Use it selectively
Normal forms should not confirm everything. Confirmation is useful when you want the user to pause because the action meaningfully matters.
Keep validation first
A form should already be valid before the confirmation step appears. Otherwise the confirmation becomes noise instead of clarity.
Validate the form before asking for confirmation.
Use confirmation for consequential actions, not routine saves.
State the consequence clearly in the dialog text.
Return clear success or error feedback after the submit actually runs.

What a good confirmation does

The dialog should help the user decide, not merely interrupt them.

Say what will happen

The confirmation message should name the action in plain language. Avoid vague prompts like Are you sure when the consequence can be stated directly.

Better prompt
Tell the user whether they are sending, publishing, overwriting, or deleting something.

Keep the choice clean

Use clear confirm and cancel actions. If the action is destructive or hard to undo, make the risky path obvious without making the dialog theatrical.

Design goal
Reduce accidental confirmation, not increase drama.

Close the loop after submit

Once confirmed, the user still needs submit feedback. The next state should show progress, then either success or a recoverable error message.

Confirmation is not completion
The interaction still needs pending and result feedback after the user chooses Yes.

Next steps

Confirmation works best when paired with good pending-state feedback and with a separate pattern for destructive deletes.