Savvy Docs
  • Welcome
  • Guides
    • Intro to the builder
    • Designer Card
    • Options Card
    • Working with Logic
  • How-To's
    • General How-To's
      • βœ”οΈHow to select a container when I can’t click over it on the screen
      • πŸ‘οΈHow to hide a global component on a specific page
      • πŸ“ŠHow to calculate statistical significance from split test
      • πŸ…°οΈHow to install a Google font.
      • πŸ—’οΈHow to use "Logs" for debugging
      • ↩️How to change pages order
      • πŸŒ’How to select components that are behind the Embeddables card
      • πŸ“„How to clone a page
      • βž•How to add new components to a page
      • πŸ“„How to select the whole page
      • πŸ’»How to view your flow on different screen sizes
      • β›΅How to move between pages while editing your flow
    • Design How-To's
      • πŸ–‹οΈHow to style a specific component element (E.g. buttons image)
      • β­•How to style individual buttons (by button key) in Options Selectors
      • 🧿How to style a rounded bullet-like checkbox for options buttons
      • πŸ”²How to get rid of the default input outline
      • πŸ–ΌοΈHow to style a background image
      • 🦚How to style components (basics)
      • β†ͺ️How to change a component's location
      • ⬆️How to upload and apply images to your design
      • πŸ”˜How to style hover, selected, disabled button states
      • πŸͺΆHow to style CSS properties that are not there in the designer card (custom properties)
      • πŸ“±How to make my flow responsive
    • Logic How-To's
      • πŸ‘οΈHow to set show/hide conditions
      • πŸ“ΊHow to display a value previously entered by the user
      • βœ–οΈHow to add a β€œDeselect All” button in a Multi-Select
      • πŸ”¨How to use a computed field in a condition
      • πŸ‘οΈHow to hide a global component on a specific page
  • Other useful docs
    • Useful Docs
      • 🚦Conditions
      • πŸ‘©β€πŸ’»Computed Fields
      • πŸ”–Tags
    • WORK IN PROGRESS
      • ◻️Pending
        • Work in Progress: How the New Rendering Engine Works
        • Work in Progress: How to create a new Split test
        • Work in Progress: Preloading images
        • Work in Progress: How to show β€œloading…” while fetching or processing data
        • Work in Progress: How to send data to Tiktok
        • Work in Progress: How to send data to Postcript
        • Work in Progress: How to send data to Klaviyo
        • Work in Progress: How to send data to Google Tag
        • Work in Progress: How to send data to Google Analytics
        • Work in Progress: How to Fetch User Location Data to use in your Flow
        • Work in Progress: How to fetch job offers from Lever’s API
        • Work in Progress: How to fetch data and display the results as options in a dropdown
        • Work in Progress: How to create a new split test with 3 variants
        • Work in Progress: How to Duplicate a Container with All its Content
        • Work in Progress: How to add Chart.js to your flow
        • Work in Progress: How to Create Repeatable Button Components, Fetching from a Database
        • Work in Progress: How to Create a Global Column
        • Work in Progress: How to Clone a Flow
        • Work in Progress: How to Create and Style a Carousel
        • Work in Progress: How to Add Default User Data
        • Work in Progress: How to Show Validation Messages on Required Fields
        • Work in Progress: How to create an Option Selector Results Page
        • Work in Progress: How to create a combined Option Selector + Input component
        • Work in Progress: How to Add an Info Box Popup
        • Work in Progress: How to set up a Micro-Product as a Popup on your Site
        • Work in Progress: How to make a Full-Page Flow
        • Work in Progress: How to Use Custom Selectors
        • Work in Progress: How to Add a Video/GIF Placeholder to a Video Component
        • Work in Progress: How to Style Buttons
        • Work in Progress: How to Center Components
        • Work in Progress: How to Bring Data from Airtable
        • Work in Progress: How to add a custom font from a website:
        • Work in Progress: How to Create Computed Fields
        • Work in Progress: How to Ping an API
        • Work in Progress: How to Store a Password
        • Work in Progress: How to Bring Data from Google Sheet
        • Work in Progress: How to Fetch Safely from Savvy
        • Work in Progress: How To Fetch Data from a specific row in Airtable in a Computed Field
Powered by GitBook
On this page
  • Popup messages (default native HTML)
  • Step 1: Wrap the Flow in a Form
  • Step 2: Prepare the "Next" Button
  • Step 3: Make the inputs "Required"
  • Custom Validation Messages
  • Step 1: Wrap the Flow and Allow Custom Messages
  • Step 2: Make the inputs "Required" and Give them Custom Messages
  • Step 3: Give them Custom Messages
  1. Other useful docs
  2. WORK IN PROGRESS
  3. Pending

Work in Progress: How to Show Validation Messages on Required Fields

PreviousWork in Progress: How to Add Default User DataNextWork in Progress: How to create an Option Selector Results Page

Last updated 1 year ago

For Form Validation, you have a choice of triggers and displays.

Triggers - Form Validation can be triggered by:

  1. User submitting the page, or

  2. User leaving the field (i.e. it loses focus)

Display - Validation messages can be displayed as:

  1. Default native HTML popup messages, or

  2. Savvy's custom validation UI

The only combination that's not possible is Trigger #2 + Display #1 because the default native HTML popup messages immediately re-focus the field, meaning the user could never leave that field.

Step by step of both display mode options

Popup messages (default native HTML)

Step 1: Wrap the Flow in a Form

  • Go to "Entire Flow" on the All Tab of the Left Side Bar

  • On the Options Tab of the Right Side Bar, click on the "Advanced" dropdown

  • Check the "Use Form Wrapper Tag" box

Step 2: Prepare the "Next" Button

  • Select the Global Next Button (If at some point you use a Next/Submit/Go-on button that isn't global you should do the same for that one)

  • On the Options Tab of the Right Side Bar, go to the Validation Area, and check the "Submit as Form" and "Needs Validation Passed" boxes

  • Set Visibility to "Always show"

Important: The only way to show these messages is on submit. This won't work with the "Validate on Blur" option selected.

Step 3: Make the inputs "Required"

  • Select the Input Box Component

  • Go to the Options Tab on the Right Side Bar

  • On the Configuration Area check the "Required" box.

  • Repeat with all the Input Boxes you want to be required on the Flow

This will get you a message on the fields you need to fill when you click the "Next" button. You can also get the flow to show a custom message when the field is empty or when the input is not correct.

Custom Validation Messages

Step 1: Wrap the Flow and Allow Custom Messages

  • Go to "Entire Flow" on the All Tab of the Left Side Bar

  • On the Options Tab of the Right Side Bar, click on the "Advanced" dropdown

  • Check the "Use Form Wrapper Tag" box

  • Check the "Use Custom Validation Messages" box

Step 2: Make the inputs "Required" and Give them Custom Messages

  • Select the Input Box Component

  • Go to the Options Tab on the Right Side Bar

  • On the Configuration Area check the "Required" box

Step 3: Give them Custom Messages

  • On the Validation Area in the Options Tab, fill in the "Custom Invalid Message" and the "Custom Field Empty Message" where needed

  • For values like Emails, you can select a preset from the "Validation Formula" dropdown

  • Check the "Validate On Blur" box. This will show the custom message when the user leaves the field

  • Repeat with all the Input Boxes you want to be required on the Flow

When using the "Validate On Blur" option, you can either show the "Next" button, disable it or hide it. The result is the same.

◻️
Default native HTML popup messages
Custom validation messages UI