H
H
haa2015-09-21 10:20:16
JavaScript
haa, 2015-09-21 10:20:16

Why doesn't the loadInView function fire when clicked?

Hello. There is a photo upload script, when you select a photo, it immediately shows a preview of the picture. But I need to show a preview of the image after clicking Show preview, when upload12 is clicked, the loadInView function should work. Here is the code

//defaultUploadBtn.on('change', function() {
  $('.upload12').click(function() {
    temp = $("#sigtext").val();
   		// Заполняем массив выбранными изображениями
   		var files = $(this)[0].files;
   		// Проверяем на максимальное количество файлов
    if (1 <= maxFiles) {
      // Передаем массив с файлами в функцию загрузки на предпросмотр
      loadInView(files);
      // Очищаем инпут файл путем сброса формы
            $('#frm').each(function(){
          	    this.reset();
      });

    } else {
      alert('Вы не можете загружать больше '+maxFiles+' изображений!'); 
      files.length = 0;
    }
  });

For some reason it does not work, but loadInView works immediately after selecting the file.

loadInView function code
// Функция загрузки изображений на предросмотр
  function loadInView(files) {
    // Показываем обасть предпросмотра
    $('#uploaded-holder').show();
    
    // Для каждого файла
    $.each(files, function(index, file) {
            
      // Несколько оповещений при попытке загрузить не изображение
      if (!files[index].type.match('image.*')) {
        
        if(errMessage == 0) {
          $('#drop-files p').html('Эй! только изображения!');
          ++errMessage
        }
        else if(errMessage == 1) {
          $('#drop-files p').html('Стоп! Загружаются только изображения!');
          ++errMessage
        }
        else if(errMessage == 2) {
          $('#drop-files p').html("Не умеешь читать? Только изображения!");
          ++errMessage
        }
        else if(errMessage == 3) {
          $('#drop-files p').html("Хорошо! Продолжай в том же духе");
          errMessage = 0;
        }
        return false;
      }
      
      // Проверяем количество загружаемых элементов
      if((dataArray.length+files.length) <= maxFiles) {
        // показываем область с кнопками
        $('#upload-button').css({'display' : 'block'});
      } 
      else { alert('Вы не можете загружать больше '+maxFiles+' изображений!'); return; }
      
      // Создаем новый экземпляра FileReader
      var fileReader = new FileReader();
        // Инициируем функцию FileReader
        fileReader.onload = (function(file) {
          
          return function(e) {
            dataArray.push({name : file.name, value : this.result, text : temp});
            // Помещаем URI изображения в массив
            //dataArray.push({name : file.name, value : this.result});
            addImage((dataArray.length-1));
          }; 
            
        })(files[index]);
      // Производим чтение картинки по URI
      fileReader.readAsDataURL(file);
    });
    return false;
  }

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question