diff --git a/core/modules/file/file.es6.js b/core/modules/file/file.es6.js index dc8a807424e3..ca65744e58b8 100644 --- a/core/modules/file/file.es6.js +++ b/core/modules/file/file.es6.js @@ -201,7 +201,7 @@ triggerUploadButton(event) { $(event.target) .closest('.js-form-managed-file') - .find('.js-form-submit') + .find('.js-form-submit[data-drupal-selector$="upload-button"]') .trigger('mousedown'); }, diff --git a/core/modules/file/file.js b/core/modules/file/file.js index 79aa8288c078..b14b7868b18c 100644 --- a/core/modules/file/file.js +++ b/core/modules/file/file.js @@ -92,7 +92,7 @@ } }, triggerUploadButton: function triggerUploadButton(event) { - $(event.target).closest('.js-form-managed-file').find('.js-form-submit').trigger('mousedown'); + $(event.target).closest('.js-form-managed-file').find('.js-form-submit[data-drupal-selector$="upload-button"]').trigger('mousedown'); }, disableFields: function disableFields(event) { var $clickedButton = $(this); diff --git a/core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php b/core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php new file mode 100644 index 000000000000..c4165a8b3398 --- /dev/null +++ b/core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php @@ -0,0 +1,49 @@ +getStorage('file'); + $page = $this->getSession()->getPage(); + + $this->drupalGet(Url::fromRoute('file_module_test.managed_test', ['multiple' => TRUE])); + + $paths = []; + foreach (array_slice($this->drupalGetTestFiles('image'), 0, 2) as $image) { + $paths[] = $image->filename; + $page->attachFileToField('files[nested_file][]', $file_system->realpath($image->uri)); + $this->assertSession()->assertWaitOnAjaxRequest(); + } + + // Save entire form. + $page->pressButton('Save'); + + $this->assertSession()->pageTextContains('The file ids are 1,2.'); + $this->assertCount(2, $file_storage->loadByProperties(['filename' => $paths])); + } + +}