За последние 24 часа нас посетили 21785 программистов и 1024 робота. Сейчас ищут 688 программистов ...

Вопрос по превью загружаемых изображений

Тема в разделе "JavaScript и AJAX", создана пользователем IvanDulin, 19 сен 2018.

  1. IvanDulin

    IvanDulin Новичок

    С нами с:
    19 сен 2018
    Сообщения:
    1
    Симпатии:
    0
    Доброго дня! Помогите разобраться есть скрипт который при нажатии на кнопку создает элемент <form enctype="multipart/form-data" id="form-upload" style=""><input type="file" name="file" /></form>
    пытаюсь его отследить чтобы сделать превью файла но не получается
    Код (Javascript):
    1. <script type="text/javascript"><!--
    2. $('.date').datetimepicker({
    3.     pickTime: false
    4. });
    5.  
    6. $('.datetime').datetimepicker({
    7.     pickDate: true,
    8.     pickTime: true
    9. });
    10.  
    11. $('.time').datetimepicker({
    12.     pickDate: false
    13. });
    14.  
    15. $('button[id^=\'button-upload\']').on('click', function() {
    16.     var node = this;  
    17. $('#form-upload').remove();
    18.     $('body').prepend('<form enctype="multipart/form-data" id="form-upload" style=""><input type="file" name="file" /></form>');
    19.    $('#form-upload input[name=\'file\']').trigger('click');
    20.    if (typeof timer != 'undefined') {
    21.         clearInterval(timer);
    22.     }
    23.     timer = setInterval(function() {
    24.         if ($('#form-upload input[name=\'file\']').val() != '') {
    25.             clearInterval(timer);
    26.  
    27.             $.ajax({
    28.                 url: 'index.php?route=tool/upload',
    29.                 type: 'post',
    30.                 dataType: 'json',
    31.                 data: new FormData($('#form-upload')[0]),
    32.                 cache: false,
    33.                 contentType: false,
    34.                 processData: false,
    35.                 beforeSend: function() {
    36.                     $(node).button('loading');
    37.                 },
    38.                 complete: function() {
    39.                     $(node).button('reset');
    40.                 },
    41.                 success: function(json) {
    42.                     $('.text-danger').remove();
    43.  
    44.                     if (json['error']) {
    45.                         $(node).parent().find('input').after('<div class="text-danger">' + json['error'] + '</div>');
    46.                     }
    47.                     if (json['success']) {
    48.  
    49.                         alert(json['success']);
    50.                
    51.                         $(node).parent().find('input').val(json['code']);
    52.                        
    53.                     }
    54.                 },
    55.                 error: function(xhr, ajaxOptions, thrownError) {
    56.                     alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    57.                    
    58.                 }
    59.             });
    60.         }
    61.     }, 500);
    62.    
    63. });
    64. //--></script>

    Этим скриптом пытаюсь поймать выбранный файл проблема в том что на генерированные элементы он не срабатывает <form enctype="multipart/form-data" id="form-upload" style=""><input type="file" name="file" /></form>

    Код (Javascript):
    1. <script>
    2. function handleFileSelect(evt) {
    3.     var file = evt.target.files; // FileList object
    4.     var f = file[0];
    5.     // Only process image files.
    6.     if (!f.type.match('image.*')) {
    7.         alert("Image only please....");
    8.     }
    9.     var reader = new FileReader();
    10.     // Closure to capture the file information.
    11.     reader.onload = (function(theFile) {
    12.         return function(e) {
    13.             // Render thumbnail.
    14.             document.getElementById("outimg").src = e.target.result;
    15.  
    16.         };
    17.     })(f);
    18.     // Read in the image file as a data URL.
    19.     reader.readAsDataURL(f);
    20. }
    21. document.getElementById('file').addEventListener('change', handleFileSelect, false);
    22. </script>
    На страницу вывожу так

    HTML:
    1. <div class="row"><img style="width:150px; height:100px;" src="" id="outimg"></img></div>
    Заранее всем спасибо
     
  2. villiwalla

    villiwalla Активный пользователь

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    Код (Javascript):
    1. // вариант 1
    2. $(document).on('submit', 'form', function(e) {});
    3.  
    4. // Вариант 2 при создании узла
    5. $(elem).submit(function(e));