Skip to content
FormclickDocs
HTML FormsBuilding forms

Success & error messages

Control what visitors see after they submit: the hosted page, an inline message, or your own UI.

What the visitor sees after pressing Send depends on how the form is submitted.

Plain HTML form

Without JavaScript, the browser navigates to a clean Formclick confirmation page that shows your success message and a Go back link to the page the visitor came from. Errors use the same page with the reason.

Inline messages with formclick.min.js

With formclick.min.js the page never reloads. The submit button is disabled while sending, then a message appears at the end of the form. Set your own text with data-success-msg:

yourwebsite.com/contact
Contact us
Jane Smith
you@example.com
Write your message…
Send message
Thanks! Your message has been sent.
No page reload
HTML
<form action="https://api.formclick.io/submit" method="POST"
      data-success-msg="Thanks! We'll reply within one business day.">
  ...
</form>
<!-- Handles submit, file upload, loading state and success/error messages. -->
<script src="https://cdn.formclick.io/formclick.min.js"></script>

The message text is chosen in this order: the form’s data-success-msg, then the form’s default success message (“Thank you! Your message has been received.”, which can be changed with the MCP update_form_settings tool). Error messages come from the server, e.g. “Too many submissions. Please try again later.”

Styling the messages

The script adds a div.fc-form-msg inside the form, with fc-msg-success or fc-msg-error. The submit button gets fc-btn-loading while sending. Override them with your own CSS:

HTML
<style>
  .fc-form-msg   { margin-top: 16px; padding: 12px 14px; border-radius: 10px; font-size: 14px; }
  .fc-msg-success { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
  .fc-msg-error   { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
  button.fc-btn-loading { opacity: .7; cursor: wait; }
</style>

Your own UI

To show a modal, confetti or anything else, listen for the fc:success and fc:error events, or skip the script and use fetch.

JavaScript
const form = document.querySelector('#contact');

form.addEventListener('fc:success', (e) => {
  console.log('Saved!', e.detail);       // { success: true, message: "…" }
  showThankYouModal();
});

form.addEventListener('fc:error', (e) => {
  console.error('Failed:', e.detail.message);
});
Still need help? Contact support or email support@formclick.io.