formsVercel
Submission Rule
MUST
MUST: Keep submit enabled until request starts; then disable, show spinner, use idempotency key
Keep submit button enabled until submission starts, then disable with loading state
Bad
Good
Why it matters
Pre-disabling submit buttons prevents users from discovering validation errors. Let them try to submit, then show what needs fixing. Once submission starts, disable the button and show a loading indicator to prevent double submissions. Use idempotency keys on the backend to handle accidental duplicate requests.
References