Display error when Name field is left empty in Contact form same way as email field

Topic summary

A user is customizing a Shopify contact form to make the Name field required, but wants it to display the same inline error message style as the Email field (“Please adjust the following” with field-specific error text) instead of the browser’s default popup (“Please fill out this field”).

Current behavior:

  • Name field: Browser popup prevents submission
  • Email field: Inline error message appears below the field

Desired outcome:
Both fields should show consistent inline error styling when left empty.

A PageFly support representative suggested adding the required attribute to the email field, but this produced the opposite effect—making the email field behave like the name field with a popup.

Status: The issue remains unresolved. The user included code from their contact-form-custom.liquid file and referenced an attached video demonstrating the desired error display behavior.

Summarized with AI on November 13. AI used: claude-sonnet-4-5-20250929.

Hi,

I’m trying to make the Name field required on the contact form. I’ve achieved that, but would like to display error the same way that for the case when email is left empty instead of the one that’s being displayed. Right now for the Name field a pop up appears saying “Please fill out this field” and don’t let me submit, but when leaving empty the email it says: Please adjust the following and a error message appears on email field saying Email is invalid.

Could someone help?

Here is the code of my contact-form-custom.liquid

{{ ‘section-contact-form.css’ | asset_url | stylesheet_tag }}

{%- style -%}
.section-{{ section.id }}-padding {
padding-top: {{ section.settings.padding_top | times: 0.75 | round: 0 }}px;
padding-bottom: {{ section.settings.padding_bottom | times: 0.75 | round: 0 }}px;
}

@media screen and (min-width: 750px) {
.section-{{ section.id }}-padding {
padding-top: {{ section.settings.padding_top }}px;
padding-bottom: {{ section.settings.padding_bottom }}px;
}
}
{%- endstyle -%}

{%- if section.settings.heading != blank -%}

{{ section.settings.heading }}

{%- else -%}

{{ 'templates.contact.form.title' | t }}

{%- endif -%} {%- liquid assign contact_form_class = 'isolate' if settings.animations_reveal_on_scroll assign contact_form_class = 'isolate scroll-trigger animate--slide-in' endif -%} {%- form 'contact', id: 'ContactForm', class: contact_form_class -%} {%- if form.posted_successfully? -%}

{% render 'icon-success' %} {{ 'templates.contact.form.post_success' | t }}

{%- elsif form.errors -%}

{% render 'icon-error' %} {{ 'templates.contact.form.error_heading' | t }}

{%- endif -%}
{{- 'templates.contact.form.name' | t }} * {%- if form.errors contains 'name' -%} {{ 'accessibility.error' | t }} {%- render 'icon-error' -%} {{- form.errors.translated_fields.name | capitalize }} {{ form.errors.messages.name -}} {%- endif -%}
{{- 'templates.contact.form.email' | t }} * {%- if form.errors contains 'email' -%} {{ 'accessibility.error' | t }} {%- render 'icon-error' -%} {{- form.errors.translated_fields.email | capitalize }} {{ form.errors.messages.email -}} {%- endif -%}
{{- form.body -}} {{- 'templates.contact.form.comment' | t -}}
{{ 'templates.contact.form.send' | t }}
{%- endform -%}

{% schema %}
{
“name”: “t:sections.contact-form.name”,
“tag”: “section”,
“class”: “section”,
“disabled_on”: {
“groups”: [“header”, “footer”]
},
“settings”: [
{
“type”: “inline_richtext”,
“id”: “heading”,
“default”: “Contact form”,
“label”: “Heading”
},
{
“type”: “select”,
“id”: “heading_size”,
“options”: [
{
“value”: “h2”,
“label”: “t:sections.all.heading_size.options__1.label”
},
{
“value”: “h1”,
“label”: “t:sections.all.heading_size.options__2.label”
},
{
“value”: “h0”,
“label”: “t:sections.all.heading_size.options__3.label”
}
],
“default”: “h1”,
“label”: “t:sections.all.heading_size.label”
},
{
“type”: “color_scheme”,
“id”: “color_scheme”,
“label”: “t:sections.all.colors.label”,
“default”: “background-1”
},
{
“type”: “header”,
“content”: “t:sections.all.padding.section_padding_heading”
},
{
“type”: “range”,
“id”: “padding_top”,
“min”: 0,
“max”: 100,
“step”: 4,
“unit”: “px”,
“label”: “t:sections.all.padding.padding_top”,
“default”: 36
},
{
“type”: “range”,
“id”: “padding_bottom”,
“min”: 0,
“max”: 100,
“step”: 4,
“unit”: “px”,
“label”: “t:sections.all.padding.padding_bottom”,
“default”: 36
}
],
“presets”: [
{
“name”: “t:sections.contact-form.presets.name”
}
]
}
{% endschema %}

Hi @BendersBakery

This is Richard from PageFly - Shopify Page Builder App

Please add required to your email field to get this solved


Simply add required to the email field exactly like your name field

Hope this can help you solve the issue

Best regards,

Richard | PageFly

That makes the field email show same error as the Name when left empty and click submit.
But I would like the opposite result, I’d like when leaving the name and email empty display the error as in the video attached.