🎉 Celebrate with 10% OFF on All Products! Use Code: GFEX10 Or Buy Any 2+ Items for 30% OFF with Code: GFEX30!

How can we help you?

Find answers, tutorials, and guides to get the most out of Gravity Extra add-ons. (DEV Preview)

Gravity Forms Choice Limits Premium Add-on Setup Guide

Last updated: October 13, 2026 • Author:
Table of Contents

Video walkthrough

Limit How Many Checkboxes Can Be Selected in Gravity Forms (Live Counter)
Video tutorial: limit how many checkboxes can be selected in Gravity Forms, with a live counter Watch on YouTube

What it does

Choice Limits sets how many choices visitors can pick in Gravity Forms checkbox and multi-select fields. Each field gets one rule, and several fields can share one total. Visitors see a live counter, the remaining choices lock when a maximum is reached, and every rule is checked again on the server when the form is submitted.

Requirements: WordPress 6.5+, PHP 7.4+, Gravity Forms 2.9 or newer, an active GravityExtra license.

Set up in 3 steps

  1. Activate the license. Go to Forms → Settings → Choice Limits, enter the key from My Account → License keys and click Activate License.
  2. Open the form’s Choice Limits tab. Forms → (your form) → Settings → Choice Limits. Every supported field is listed with its label, type and ID.
  3. Pick rules and save. Choose a rule and numbers per field. To share a total, type a name in an empty row of the Shared limits table and pick it in the Shared limit column. Click Save Settings.
Choice Limits tab in Form Settings: one row per checkbox and multi-select field with Rule, Min and Max, Max from field, Shared limit, Allow empty and Message
Choice Limits tab in Form Settings: one row per checkbox and multi-select field with Rule, Min and Max, Max from field, Shared limit, Allow empty and Message

Settings reference

Form → Settings → Choice Limits

Setting Values Notes
Apply choice limits on this form On / Off Off: nothing loads and nothing is checked for this form.
Show a live counter under limited fields On / Off “2 of 3 selected”, or “1 selected (minimum 2)” when there is no maximum.
Rule No limit, At most, At least, Exactly, Between Exactly uses the first number.
Min – Max 0–999 Only the numbers the rule uses are shown. Between with Min above Max is swapped on save. An empty Max means no maximum.
Max from field Fixed, or a field of the form Uses that field’s answer as the maximum (whole number, rounded down). Empty or not a number: the fixed Max, or no maximum.
Shared limit None, or a group Each field can join one group. A field in a group can also keep its own rule.
If optional → Allow empty On / Off On: an optional field (or a group whose fields are all optional) may stay empty; the minimum applies once something is chosen. Required fields use Gravity Forms’ own required message when empty.
Message Text Placeholders {min}, {max} and {selected}. Empty: the site default or the built-in text.

The Shared limits table has Name, Rule, Min – Max, Allow empty, Message, Fields (read-only) and Remove. Two empty rows add new groups.

Forms → Settings → Choice Limits (site-wide)

License, and the default messages for At most, At least, Exactly and Between, plus the text placed before a shared-limit message.

Form editor

The General tab of a limited field shows a read-only line, for example “Choice limits: At most 2”, with a link to the Choice Limits tab.

How limits behave

  • Fields hidden by conditional logic count as zero and are not checked.
  • A shared limit’s maximum is checked on every page. Its minimum is checked once the visitor reaches the page with the last field of the group, and always on the final submit. The message appears on every field of the group.
  • When a maximum that follows another field drops below the number already picked, nothing is unticked automatically; the counter turns red and the submission is refused until the visitor removes choices.
  • Multi Select: unselected options are disabled at the maximum. Checkboxes: unselected choices get aria-disabled="true" and stay focusable; clicking them announces the reason in a polite live region.
Form after submit: messages on the fields that break a limit, locked choices after the maximum and the live counter "4 of 2 selected"
Form after submit: messages on the fields that break a limit, locked choices after the maximum and the live counter "4 of 2 selected"

Recipes

  1. Workshop picker: Checkboxes “Workshops”, rule At most 2.
  2. At least two references: Checkboxes, At least 2, Allow empty off (always required).
  3. Exactly three toppings: Exactly 3, message “Choose exactly {min} toppings (you picked {selected}).”
  4. Meals per guest: a Number field “Guests”; Checkboxes “Meals” with At most 1 and Max from field = Guests.
  5. Sessions across days: shared limit “Sessions”, Between 4 and 6; the Monday, Tuesday and Wednesday fields join it, also across pages.
  6. Product options: an Option field (checkboxes) with At most 2 extras per product.
Shared limit across Monday and Tuesday sessions with the counter "In total: 4 of 3 selected" and a maximum that follows the number of guests
Shared limit across Monday and Tuesday sessions with the counter "In total: 4 of 3 selected" and a maximum that follows the number of guests

Upgrading from 1.x

  • Update from the Plugins screen or upload the zip and choose “Replace current with uploaded”. The plugin stays active.
  • On the first load, 2.0 copies each form’s earlier limits to the new tab: minimum and maximum become one rule (Between, At most, At least or Exactly); a limit shared across fields becomes a group named “Group <field ID>” with the same numbers; Allow empty is off for these rules, so the minimum still applies as before; an empty maximum means no maximum.
  • Your license key is copied to the new settings screen.
  • A notice on the Dashboard and Plugins screen lists the forms that were updated. Review them, then dismiss the notice.
  • Your 1.x settings are kept. If you ever go back to 1.x, it keeps working with them.

Developer reference

Filter Arguments Use
gravityextra/choice_limits/config array $config, array $form Change a form’s limits before use.
gravityextra/choice_limits/count int $count, GF_Field $field, mixed $value, array $form Count selections differently.
gravityextra/choice_limits/message string $message, array $rule, int $count, GF_Field $field, array $form Change a validation message.
gravityextra/choice_limits/supported_field bool $supported, GF_Field $field Add or remove supported field types.

Stored data: form meta key gfxchoicelimits (enabled, show_counter, rules, pools); plugin settings gravityformsaddon_gfxchoicelimits_settings. JavaScript: window.gfxChoiceLimits.instance( formId ).

Changelog

2.0.0 (October 13, 2026): new Choice Limits tab, five rule types, more field types, shared limits across fields and pages, maximum from another field, live counter, accessible locking, custom messages and server-side checks. Full history on the add-on page.

Need help? Open a support ticket.

Was this article helpful?

Let us know how we can improve our docs.

0
0
Your Cart
Your cart is emptyReturn to Shop
🔥 FREQUENTLY BOUGHT TOGETHER
Complete Combo & Save 40%!
ITEM IN YOUR CART
Gravity Forms Klaviyo Add-on
$39.00/yr
+
🎁 RECOMMENDED ADD-ON SAVE 40% OFF
Original Price: $39.00/yr
Bundle Special Price: $23.40/yr