Не работает autoupload

Главные вкладки

Аватар пользователя Babich Babich 23 августа 2018 в 14:22

Приветствую всех. Заранее спасибо за помощь. На drupal 7 через модуль webform решил сделать загрузку поля "файл" автоматически. Подключаю js в инфо файле темы, скрипт подгружается, ошибок в консоли нет, по идее должна прятаться кнопка прикрепить и при выборе файла автоматом загружаться файл, но этого не происходит. Версия jQuery 1.7 (модуль Версия jQuery update).

Вот код js

jQuery(document).ready(function(){

/*************** Автоматическая загрузка файла***************/

  $('#edit-submitted-upload-file-upload').on('change', 'input[type="file"]', function() {
    $(this).parent().find('input#edit-submitted-upload-file-upload-button').mousedown();
  });
});

Лучший ответ

Аватар пользователя Babich Babich 23 августа 2018 в 16:52

Про <?php согласен)) Заработался, тупо копировал и вставлял.
Решил вопрос, изменив js файл, может кому пригодиться, только имя полей нужно будет свои подставить)

(function ($) {
  Drupal.behaviors.autoUploadWebform = {
    attach: function ( context, settings ) {
      $('.form-managed-file #edit-submitted-upload-file-upload-button').css({'display':'none'});
      $('.form-managed-file').delegate( 'input.form-file', 'change', function () {  
      $(this).next('input[type="submit"]').mousedown ();
     });
   }
 };
})(jQuery);

Убирается только кнопка загрузить (прикрепить), после автоматической загрузки появляется кнопка удалить.

Всем, кто откликнулся большое спасибо.

Комментарии

Аватар пользователя Babich Babich 23 августа 2018 в 15:17

Создал и установил данный модуль. Вверху страницы пишет function auto_upload_init() {
drupal_add_js(drupal_get_path('module', 'auto_upload') . '/auto_upload.js');
}

Аватар пользователя marassa marassa 23 августа 2018 в 16:30

Babich wrote:

Создал и установил данный модуль. Вверху страницы пишет function auto_upload_init() {

drupal_add_js(drupal_get_path('module', 'auto_upload') . '/auto_upload.js');

}


Если Вы зачем-то решили по кусочку создать модуль из обрывков кода в первом ответе, то нужно было в начало файла auto_upload.module хотя бы вставить <?php Wink
Но проще всего было установить готовый модуль из второго ответа Wink

Аватар пользователя Babich Babich 23 августа 2018 в 16:52

Про <?php согласен)) Заработался, тупо копировал и вставлял.
Решил вопрос, изменив js файл, может кому пригодиться, только имя полей нужно будет свои подставить)

(function ($) {
  Drupal.behaviors.autoUploadWebform = {
    attach: function ( context, settings ) {
      $('.form-managed-file #edit-submitted-upload-file-upload-button').css({'display':'none'});
      $('.form-managed-file').delegate( 'input.form-file', 'change', function () {  
      $(this).next('input[type="submit"]').mousedown ();
     });
   }
 };
})(jQuery);

Убирается только кнопка загрузить (прикрепить), после автоматической загрузки появляется кнопка удалить.

Всем, кто откликнулся большое спасибо.

Аватар пользователя marassa marassa 23 августа 2018 в 16:57

PS Но на самом деле всё, что делает этот php-код - это подключение нужного js к странице. Если у Вас js уже вставлен в тему и точно выполняется, то просто попробуйте вместо Вашего кода повставлять варианты со stackexchange - возможно что-то заработает.
PPS А вместо .mousedown() не пробовали .click()?
PPPS Писал, не видя последнего сообщения. Заработало - и хорошо Wink