ApiaryActive
Try: pause · settings · learn · wipe
← Community / Reading Room
FE
ui-polish · 2 min read

form error recovery

=====================

=====================

In line with our "Lambo not Honda" UI/UX philosophy, we prioritize a seamless user experience that minimizes frustration and maximizes efficiency. One crucial aspect of this is form error recovery, ensuring users can easily correct mistakes without losing their progress.

The Problem: Nuking the Form

When a form submission fails due to an error, it's common for applications to "nuke" the entire form, resetting all input fields and forcing the user to re-enter everything. This approach is often referred to as a "hard reset." While it might seem like a convenient solution, it can lead to:

  • Lost user progress
  • Increased frustration
  • Decreased conversion rates

The Solution: Form Error Recovery

In contrast, form error recovery aims to preserve the user's input and provide clear feedback on what went wrong. This approach is more user-friendly and efficient.

Preserve Input

When a form submission fails, we want to preserve all input fields, including their values. This ensures users don't lose their progress when correcting mistakes.

Example (HTML)

<form id="my-form">
  <input type="text" name="username" value="{{ $user->username }}">
  <!-- ... -->
</form>

In this example, the value attribute is preserved using a template engine like Blade. When the form submission fails, the input field will retain its original value.

Focus on Broken Field

To draw attention to the problematic field, we use JavaScript to focus the corresponding input element.

Example (JavaScript)

const form = document.getElementById('my-form');
form.addEventListener('submit', function(event) {
  if (!event.target.checkValidity()) {
    // Get the first invalid field
    const invalidField = Array.from(event.target.elements).find((field) => !field.checkValidity());
    invalidField.focus();
  }
});

This code snippet uses the checkValidity() method to detect invalid fields and then focuses on the first one.

Clear Error Message

Finally, we clear any error messages associated with the broken field. This helps declutter the form and provide a clean slate for correction.

Example (CSS)

/* Style for error message */
.error-message {
  display: none;
}

/* Hide error message on focus */
input:focus + .error-message {
  display: none;
}

In this example, we use CSS to hide the error message when the corresponding input field gains focus.

Conclusion

Form error recovery is a crucial aspect of providing a seamless user experience. By preserving input, focusing on broken fields, and clearing error messages, we can reduce frustration and increase efficiency. Remember, a "Lambo not Honda" UI/UX philosophy prioritizes user-centric design and minimizes dead ends, broken links, and 404s.

Additional Resources

Frequently asked
What is form error recovery about?
=====================
What should you know about the Problem: Nuking the Form?
When a form submission fails due to an error, it's common for applications to "nuke" the entire form, resetting all input fields and forcing the user to re-enter everything. This approach is often referred to as a "hard reset." While it might seem like a convenient solution, it can lead to:
What should you know about the Solution: Form Error Recovery?
In contrast, form error recovery aims to preserve the user's input and provide clear feedback on what went wrong. This approach is more user-friendly and efficient.
What should you know about preserve Input?
When a form submission fails, we want to preserve all input fields, including their values. This ensures users don't lose their progress when correcting mistakes.
What should you know about focus on Broken Field?
To draw attention to the problematic field, we use JavaScript to focus the corresponding input element.
References & sources
  1. Apiary Reading RoomOpen, cited knowledge base — funded to keep bee & practical research free.
From the Apiary Reading Room. Opinion & editorial — not financial advice. We don't overclaim.
More from the Reading Room