Почему не работает event.preventDefault()

85
10 июня 2021, 08:10

Почему не работает event.preventDefault();?

Идея в вот что при выборе изображения, они должны автоматический загружаться на сервер при помощи Ajax

$(document).on('change', '#file_input', function() { 
 
  var form = document.getElementById('file_upload'); 
 
  form.submit(function(event) { 
 
    event.preventDefault(); 
    NProgress.start(); 
 
    $.ajax({ 
      type: $(this).attr('method'), 
      url: $(this).attr('action'), 
      data: new FormData(this), 
      statusCode: { 
        404: function() { 
          alert("Страница не найдена."); 
        } 
      }, 
      success: function(result) { 
 
        console.log(result.src); 
 
        if (result.notify) { 
          $('#notify').append('<div class="notify_block">' + result.notify + '</div>'); 
          setTimeout(function() { 
            hideNotify(); 
          }, 5000); 
        } 
        NProgress.done(); 
      }, 
      error: function(xhr, textStatus, thrownError) { 
        // console.log(xhr.responseText); 
        NProgress.done(); 
      } 
    }); 
  }); 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<div id="file_preview"></div> 
 
<div class="input_block"> 
  <form action="{{route('files.upload', $company->id)}}" method="POST" id="file_upload" enctype="multipart/form-data"> 
    @csrf 
    <input type="hidden" name="company_id" value="{{$company->id}}"> 
    <input type="file" name="file[]" multiple id="file_input"> 
  </form> 
</div>

Answer 1

В коде смешан jQuery и чистый JS. Форма возвращается через API браузера, а используется как объект jQuery.

Это дело можно починить как-то так:

var form = $('#file_upload');
form.submit(function(event) {
  ...
})
READ ALSO
Нужна помощь по api kodexplorer

Нужна помощь по api kodexplorer

подскажите пожалуйста каким образом из javascript закрыть собственное окно в kodexplorer? Какую функцию top фрейма нужно вызвать и c какими параметрами?...

100
slick, несколько слайдеров с тем же классом?

slick, несколько слайдеров с тем же классом?

есть 6 табов, и в каждом табе свой слайдерСоздал одинаковую структуру и дал для каждого слайдер один и тот же класс который потом в js привязал...

120
Как создать дату в определенном формате JS

Как создать дату в определенном формате JS

new Date() возвращает дату в формате: день недели, месяц(словом), день, год, часы, минуты, секундыМожно ли как-то создавать сразу дату в определенном...

95
Объединение двух массивов c объектами

Объединение двух массивов c объектами

У меня есть два массива с объектами

95