List Column Required for Gravity Forms
List Column Required for Gravity Forms lets you mark individual columns as required in multi-column List fields — something Gravity Forms doesn’t support out of the box.
By default, Gravity Forms only allows you to make the entire List field required (meaning at least one row must be filled). This plugin goes further: you can choose which columns within each row must be filled in before the form can be submitted.
The Problem
When using the Gravity Forms List field with „Enable multiple columns“ turned on, there’s no way to require specific columns. You can only require the entire field, which passes as long as any cell has a value — even if critical columns like „Email“ or „Name“ are left blank.
The Solution
This plugin adds a small „Required“ checkbox next to each column in the form editor. Check it, and that column becomes required — with server-side validation, front-end asterisk indicators, and accessible aria-required attributes.
Key Features
- Per-Column Required — Mark individual columns as required independently
- Server-Side Validation — Required columns are enforced on form submission
- Front-End Indicators — Red asterisks on required column headers, matching GF native styling
- Accessibility — Adds
aria-required="true"to required column inputs - Auto-Require All — Toggling the field-level „Required“ rule ON automatically marks all columns required
- Smart Row Handling — Blank extra rows are skipped; partially filled rows enforce required columns
- Zero Configuration — No settings pages; works at the field level out of the box
How It Works
- Edit any form with a multi-column List field
- Check the „Required“ checkbox next to individual columns in the form editor
- Save the form — required columns are enforced on submission
Validation Logic
- Row with some data → all required columns in that row must be filled
- All rows empty → the first row’s required columns are enforced
- Extra blank rows → skipped (user added a row but didn’t start filling it)
- Non-column List fields → completely unaffected
