Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Usage Milestone: Google Analytics Module google_analytics crossed 1,000 active installs. Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Release: GraphQL Compose Codegen 1.1.2 Minor update available for module graphql_compose_codegen (1.1.2). Release: Mapy.com 1.1.3 Minor update available for module mapycom (1.1.3). Release: Ckeditor5 entity browser 3.0.3 Minor update available for module ckeditor5_entity_browser (3.0.3). Release: Ckeditor5 entity browser 3.0.1 Minor update available for module ckeditor5_entity_browser (3.0.1). Release: Ckeditor5 entity browser 3.0.2 Minor update available for module ckeditor5_entity_browser (3.0.2). Release: Teamleader Integration 4.0.2 Minor update available for module teamleader (4.0.2). Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

Submit Indicator

1 sites No security coverage
View on drupal.org

This module adds visual loading indicators to standard Drupal form submits, similar to how AJAX forms behave. It helps prevent accidental double submissions by showing feedback while the form is being processed on the server, and offers customizable spinner, throbber, or fullscreen loading animations.

Adds AJAX-like loading animations to non-AJAX form buttons

AJAX forms in Drupal display loading indicators (spinners or throbbers) when submitted. This module provides the same functionality for regular form submissions - showing visual feedback during server-side processing and preventing double-submission issues.

The module supports three indicator types:

  1. A css spinner background-image on the button
  2. Drupal's standard AJAX throbber
  3. Drupal's AJAX fullscreen throbber

Configuration

  1. Install and enable the module
  2. Visit Admin / Config / User Interface / Submit Indicator
  3. Choose your default indicator style (spinner, throbber, or fullscreen)
  4. Done - all forms now show feedback on submit

You can also target specific form buttons.

For detailed configuration options, see the README.md.

Features

  • Three indicator types: Spinner overlay on button, Drupal's throbber next to button, or fullscreen overlay
  • Automatic or opt-in: Enable for all forms by default, or only specific forms
  • Form API property: Use #submit_indicator for per-form and per-button control (similar to #ajax)
  • Smart exclusions: Automatically skips AJAX forms, optionally excludes admin pages or specific form IDs
  • CSS customizable: Theme the spinner color and appearance via CSS custom properties

How It Works

When a user clicks a submit button on a non-AJAX form:

  1. The configured indicator (spinner, throbber, or fullscreen) is shown
  2. The button is optionally disabled to prevent double-clicks
  3. If client-side validation fails, the indicator resets immediately
  4. If the form submits successfully, the page navigates and the indicator disappears
  5. A configurable timeout resets the indicator if the page doesn't navigate (handles errors)

Usage: #submit_indicator Property

// Use fullscreen overlay for a form
$form['#submit_indicator'] = ['type' => 'fullscreen'];

// Shorthand - just pass the type
$form['#submit_indicator'] = 'throbber';

// Disable for a specific button
$form['actions']['preview']['#submit_indicator'] = FALSE;

// Disable for entire form
$form['#submit_indicator'] = FALSE;

// Spinner with custom color
$form['actions']['submit']['#submit_indicator'] = [
  'type' => 'spinner',
  'color' => '#000000',
];

Available Options

  • type - 'spinner', 'throbber', or 'fullscreen'
  • color - Hex color for spinner (spinner type only)
  • message - Text shown next to throbber (throbber type only)
  • disableButton - Whether to disable the button (default: true)

Similar Modules

Requirements

  • Drupal 10 or 11

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
1
Tracked since
Jan 2026
Latest release
7 months ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Slowing

Releases

Version Type Core Release date
1.0.x-dev Dev 10–11 Jan 18, 2026