TutorialHow to Validate Repeatable Contact Rows in Gravity Forms

A Gravity Forms List field works well when users need to enter the same type of information more than once. But the native List field does not give each column its own field-specific validation.

For example, a team roster may contain a name, work email, and employee ID in every row. You may want email addresses checked for valid formatting and employee IDs to follow a fixed rule such as EMP0042.

In this tutorial, we use GravityWP List Text to add column-level validation to a repeatable Gravity Forms List field.

We tested the complete workflow before writing this guide. Invalid emails and employee IDs were rejected, an invalid email in the second row blocked a three-row submission, and the corrected roster was stored successfully in the Gravity Forms entry.

What Does This Gravity Forms List Field Validation Workflow Do?

This workflow turns a standard multi-column Gravity Forms List field into a repeatable team roster with different validation rules for specific columns.

You will:

  • Create a Team Members List field with Full Name, Work Email, and Employee ID columns.
  • Add email validation to the Work Email column.
  • Add custom regex validation to the Employee ID column.
  • Use /^EMP\d{4}$/ to accept IDs such as EMP0042.
  • Test invalid email addresses and employee IDs.
  • Confirm that validation works across multiple repeatable rows.
  • Submit a valid three-row roster.
  • Verify the saved List values in the Gravity Forms entry.

Completed workflow: Gravity Forms List field → List Text column validation → invalid values blocked → valid repeatable rows submitted → rows stored in the Gravity Forms entry.

Tested limitation: This tutorial covers format validation, not required validation for every List cell. In our test, blank Full Name, Work Email, and Employee ID cells were accepted. Invalid entered values were rejected.

Why Does a Gravity Forms List Field Need Column Validation?

Gravity Forms supports repeatable rows and multiple labeled columns inside a List field. However, the official Gravity Forms List field documentation states that the List field does not perform field-specific validation.

Marking the overall List field as Required also does not make every cell in every row required. Gravity Forms checks that at least one row contains a non-empty value.

That means the native field does not automatically know that:

  • Work Email should contain a valid email address.
  • Employee ID should follow a fixed format.
  • Different columns need different text rules.

Developers can also use the Gravity Forms gform_field_validation filter to validate a specific field with custom PHP. For this workflow, however, List Text lets us configure column validation inside the form editor without adding a custom PHP snippet.

What Do You Need?

  • Gravity Forms
  • GravityWP List Text
  • A form with a multi-column List field

List Text works with single- and multi-column List fields and lets each column be configured independently. Its product page also states that only one text option can be selected per column: email validation, textarea, or regex.

For our test, we used one List field named Team Members with these columns:

ColumnPurpose
Full NameTeam member’s name
Work EmailValidated email address
Employee IDCustom EMP + four-digit format

Step 1: Create the Team Members List Field

In WordPress, go to Forms → New Form. Create a blank form named Team Onboarding Roster.

Add a List field from the Advanced Fields section. Change the field label to Team Members.

Enable: Enable multiple columns

Create these three columns:

  • Full Name
  • Work Email
  • Employee ID

We also marked the overall Team Members List field as Required. That field setting applies to the List field as a whole. It does not make each individual input required.

Gravity Forms List field with Full Name Work Email and Employee ID columns
Team Members List field configured with three repeatable columns: Full Name, Work Email, and Employee ID.

Step 2: Configure the Full Name Column

Open the List Text options for Full Name. Enable Text Options, then select Enable Custom Validation (RegEx).

Regex:

/^.*\S.*$/

Placeholder: Full name

Custom error message: Enter a full name.

GravityWP List Text custom regex validation for Full Name column
Full Name column configured with a custom regex rule and validation message in GravityWP List Text.

A value such as Alex Rivera passed the rule. However, leaving Full Name completely blank also passed in our test.

For that reason, do not treat this regex as a way to make the Full Name column required. The main validation examples below focus on the Work Email and Employee ID columns, where malformed entered values were rejected.

Step 3: Validate the Work Email Column

Open the field settings for the Work Email column. Enable Text Options, then select Enable Email Validation.

Placeholder: name@company.com

GravityWP documents how to enable email validation in a List column, including separate configuration for columns in a multi-column List field.

GravityWP List Text email validation for Work Email column
Email Validation enabled for the Work Email column in the Gravity Forms List field.

Later, we tested alex.riveraexample.com. The form rejected it because the address was not valid. A value such as alex.rivera@example.com passed.

Step 4: Add Custom Validation to the Employee ID Column

Open the Employee ID List Text field settings. Enable Text Options, then select Enable Custom Validation (RegEx).

Regex:

/^EMP\d{4}$/

Placeholder: EMP0000

Custom error message: EMP followed by 4 digits, for example EMP0042

If you want a deeper explanation of regex syntax, see create a custom regex validation rule in the List Text documentation.

GravityWP List Text regex validation for Employee ID column
Employee ID column configured with the /^EMP\d{4}$/ regex rule and a custom error message.

What Does the Employee ID Regex Mean?

/^EMP\d{4}$/

PartMeaning
^Start of the value
EMPThe value must begin with EMP
\d{4}Exactly four digits
$End of the value

These values match:

EMP0042
EMP1287
EMP3051

These do not:

EMP42
EMP00042
STAFF0042
EMP12A4
emp0042

The List Text regex documentation states that regular expressions are case-sensitive by default. That is why lowercase emp0042 does not match this rule.

Step 5: Test an Invalid Work Email

Before relying on the setup, test the validation. We entered:

Full NameWork EmailEmployee ID
Alex Riveraalex.riveraexample.comEMP0042

Then we submitted the form. The invalid field value blocked the submission, and List Text displayed:

The column ‘Work Email’ requires a valid e-mail address.

This matches the normal Gravity Forms validation flow: Gravity Forms validates fields before the entry is saved.

Gravity Forms List field validation error for invalid Work Email
List Text blocks the form submission when the Work Email column contains an invalid email address.

Step 6: Test an Invalid Employee ID

Next, we used a valid email address but changed Employee ID to EMP42.

Full NameWork EmailEmployee ID
Alex Riveraalex.rivera@example.comEMP42

The invalid field value prevented the form submission. The custom Employee ID error message appeared and confirmed that the /^EMP\d{4}$/ rule rejected EMP42 in the actual form.

Gravity Forms Employee ID regex validation error for EMP42
The Employee ID value EMP42 fails the custom regex validation rule.

Step 7: Validate Input Across Multiple List Field Rows

The next test checked validation across the input fields in several repeatable List rows. We entered:

Full NameWork EmailEmployee ID
Alex Riveraalex.rivera@example.comEMP0042
Mei Chenmei.chenexample.comEMP1287
Jordan Leejordan.lee@example.comEMP3051

Only Row 2 contained an invalid value. When we submitted the form:

  • The submission was blocked.
  • The Work Email validation message appeared.
  • All three rows remained populated.
Gravity Forms List field validation with invalid email in repeatable row
An invalid Work Email in the second repeatable row blocks submission while keeping all List rows populated.

When one of the columns contains an invalid Work Email, the whole submission is blocked while all three entered List rows stay populated.

This is useful for longer rosters because the user can fix the invalid row without entering the other rows again.

Step 8: Submit a Valid Three-Row Team Roster

We corrected Mei Chen’s email address to mei.chen@example.com. The final roster contained:

Full NameWork EmailEmployee ID
Alex Riveraalex.rivera@example.comEMP0042
Mei Chenmei.chen@example.comEMP1287
Jordan Leejordan.lee@example.comEMP3051

All three rows passed validation, and the form submitted successfully.

Valid Gravity Forms repeatable contact rows with email and Employee ID validation
Three Team Members rows with valid email addresses and Employee IDs ready for submission.

Step 9: Verify the Stored Gravity Forms Entry

A successful front-end submission is useful, but we also want to confirm that the repeatable data was saved correctly.

Go to Forms → Entries → Team Onboarding Roster and open the newest entry.

Our successful test entry contained all three rows:

Full NameWork EmailEmployee ID
Alex Riveraalex.rivera@example.comEMP0042
Mei Chenmei.chen@example.comEMP1287
Jordan Leejordan.lee@example.comEMP3051
Gravity Forms entry with three validated Team Members List rows
The successful Gravity Forms entry stores all three validated Team Members rows.

This final check confirms that the validated repeatable data was saved as part of the Gravity Forms entry.

Does Gravity Forms Require All Columns in a List Field Row?

No, not in the setup we tested.

This is an important difference between format validation and required validation.

We separately tested:

  • A blank Full Name
  • A blank Work Email
  • A blank Employee ID

Each submission was accepted when the remaining values were valid.

ScenarioTested result
Invalid email enteredRejected
Blank emailAllowed
Invalid Employee ID enteredRejected
Blank Employee IDAllowed
Blank Full NameAllowed

So List Text validated entered values, but it did not make individual List cells required in our test. Even when the overall List field is marked as Required, blank individual cells were accepted.

If your workflow needs every column in every row to contain a value, that is a different validation requirement. The official gform_field_validation documentation includes an example that requires all inputs in a List field.

For this tutorial, we stayed with the no-code format validation available through List Text.

List Text Validation vs. Required List Columns

The table below summarizes what our tested List Text setup validates and what it does not require.

RequirementTested behavior
Validate an entered email addressList Text Email Validation rejects an invalid email value.
Validate an entered Employee IDCustom Validation rejects a value that does not match the regex rule.
Reject an invalid field valueYes. The form submission is blocked until the value is corrected.
Require every column in every rowNo. Blank individual List cells were allowed in our test.
Mark the whole List field as RequiredRequires data in the List field, not every individual cell.

Validation Summary

In our tested workflow:

  • An entered Work Email must pass email validation.
  • An entered Employee ID must match the custom regex rule.
  • Blank individual List cells were allowed, so format validation is different from requiring all columns.

This distinction keeps the validation rules clear for repeatable data and prevents the tutorial from implying that every List input is required.

Why Use List Text for Gravity Forms List Field Validation?

Without List Text, the native List field does not provide separate email and regex validation settings for individual columns.

For our roster, we needed:

Work Email → Email Validation

Employee ID → Custom Regex Validation

List Text let us configure both rules independently inside the Gravity Forms editor.

This can fit repeatable data such as employee rosters, contact lists, team members, reference numbers, account identifiers, or other structured text values.

The important distinction is that List Text controls the format of entered values. It does not automatically require every List cell.

For List fields that also need dates, dropdowns, or number formatting, see our complex Gravity Forms List field tutorial. You can also review the broader Gravity Forms List Field Add-Ons guide.

Final Thoughts

Gravity Forms List fields make repeatable data easy to collect, but different columns may need different validation rules.

In our tested Team Onboarding Roster, GravityWP List Text let us:

  • Validate Work Email values.
  • Validate Employee IDs with regex.
  • Catch an invalid value in a repeatable row.
  • Submit a valid three-row roster.
  • Store all three rows in the Gravity Forms entry.

The main limitation is equally important: List Text validation did not make individual List cells required in our test.

Use List Text when your goal is to validate the format of entered field values inside repeatable Gravity Forms List rows.

For deeper setup details, see the List Text documentation, the guide to enable email validation in a List column, and the guide to create a custom regex validation rule.

Gravity Forms List Field Validation FAQ

Can Gravity Forms validate individual List field columns?

The native Gravity Forms List field does not provide field-specific validation for each input. GravityWP List Text adds validation options to a specific column, including email validation and custom regex validation.

Can I validate email addresses inside a Gravity Forms List field?

Yes. List Text includes an Enable Email Validation option for individual List columns. In our test, alex.riveraexample.com was rejected, while alex.rivera@example.com passed.

Can I use regex validation in a Gravity Forms List field?

Yes. List Text supports custom regex validation for individual text columns. For this tutorial, we used /^EMP\d{4}$/ to validate Employee IDs.

What Employee IDs does /^EMP\d{4}$/ accept?

It accepts uppercase EMP followed by exactly four digits. EMP0042 passes. EMP42, emp0042, STAFF0042, and EMP12A4 do not match the rule.

Can I use email validation and regex on the same List column?

No. The current List Text product page states that one text option can be selected per column: email validation, textarea, or regex. In our workflow, Work Email used Email Validation while Employee ID used Custom Validation (RegEx).

Does List Text make every List column required?

Not in our tested setup. Even when the overall List field is marked as Required, blank Full Name, Work Email, and Employee ID cells were accepted. Invalid field values were rejected when a value was entered. If every List cell must contain a value, you need separate required-column validation.

Does validation work across multiple List rows?

Yes, based on our test. We entered three rows and placed an invalid email in Row 2. The entire submission was blocked, while all entered rows remained available for correction. After we fixed the invalid email, all three rows submitted successfully.

Are the repeatable rows stored in one Gravity Forms entry?

Yes. Our successful three-row roster was stored in one Gravity Forms entry with the Full Name, Work Email, and Employee ID values for all three rows.

Proudly powered by WordPress