diff --git a/src/WebformCivicrmPreProcess.php b/src/WebformCivicrmPreProcess.php index 0e40fcf99..5344f2498 100644 --- a/src/WebformCivicrmPreProcess.php +++ b/src/WebformCivicrmPreProcess.php @@ -103,6 +103,14 @@ public function alterForm() { $this->form['#attributes']['data-form-defaults'] = Json::encode($this->getWebformDefaults()); // Early return if the form (or page) was already submitted $triggering_element = $this->form_state->getTriggeringElement(); + + // When user uploads a file using a managed_file element, avoid making any change to $this->form. + if ($this->form_state->hasFileElement() + && is_array($triggering_element['#submit']) + && in_array('file_managed_file_submit', $triggering_element['#submit'], TRUE)) { + return; + } + if ($triggering_element && $triggering_element['#id'] == 'edit-wizard-prev' || (empty($this->form_state->isRebuilding()) && !empty($this->form_state->getValues()) && empty($this->form['#submission']->is_draft)) // When resuming from a draft