This project is not covered by Drupal’s security advisory policy.

This module provides a simpler way for form elements to be updated via AJAX in response to another element having its value changed.

Similarly to core's form states system, this uses a declarative syntax without any callbacks.

For example:

$form['controlling_element'] = [
  '#type' => 'checkbox',
  '#title' => 'Click me',
];

// This container is automatically updated when the user changes the value of
// the controlling_element checkbox.
$form['my_container'] = [
  '#type' => 'container',
  '#ajax' => [
    'updated_by' => [
      // Form parents of the controlling element.
      ['controlling_element'],
    ],
  ],
];

// Set this after build callback on the whole form to set up the AJAX
// behaviours.
$form['#after_build'][] = FormAjax::class .  '::ajaxAfterBuild';

This project includes a demo module with working examples.

This is a proof of concept for a core issue, but can also be used as a contrib dependency.

Project information

Releases