diff --git a/lib/form/classes/external/dynamic_form.php b/lib/form/classes/external/dynamic_form.php index 0663123c8f1..4865cb1fb46 100644 --- a/lib/form/classes/external/dynamic_form.php +++ b/lib/form/classes/external/dynamic_form.php @@ -79,6 +79,13 @@ class dynamic_form extends external_api { // Render actual form. + if ($form->no_submit_button_pressed()) { + // If form has not been submitted, we have to recreate the form for being able to properly handle non-submit action + // like "repeat elements" to include additional JS. + /** @var \core_form\dynamic_form $form */ + $form = new $formclass(null, null, 'post', '', [], true, $formdata, true); + $form->set_data_for_dynamic_submission(); + } // Hack alert: Forcing bootstrap_renderer to initiate moodle page. $OUTPUT->header();