Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Отправка файла вне формы. (https://javascript.ru/forum/dom-window/80523-otpravka-fajjla-vne-formy.html)

ureech 16.06.2020 13:35

Отправка файла вне формы.
 
Привет. Вне формы ставлю кнопку
<div class="col-md-5"><button class="file" type="button" >Добавить файл</button></div>

Имитирую клик
$('.file').click(function(){
    document.forms['itogo'].fileitog.click();
    })

Хочу в форме спрятать инпут
<form>
<input style="display:none" type="file" name="fileitog" id="file" class="input-file"/>
 <input type="submit" class="btn-info" value="Отправить"/>
</form>

Как сказать форме,про файл)? Или и так будет работать?

laimas 16.06.2020 13:58

Цитата:

Сообщение от ureech
Как сказать форме,про файл)?

Какой? Файл должен выбрать пользователь.

ureech 16.06.2020 15:35

Понятно,что пользователь. Я же не спросил,как форме выбрать файл? Как отправить файл на сервер,в этом случае?

laimas 16.06.2020 15:41

А как он выберет если это поле скрыто или вы делаете его кастомным?
А отправить без формы (что не обязательно, ее можно и отправить, просто прерывается действие по умолчанию), это асинхронным запросом:

https://developer.mozilla.org/ru/doc...PI/Using_Fetch
https://developer.mozilla.org/ru/doc...XMLHttpRequest

ureech 16.06.2020 15:59

Поле то скрыто,но есть имитация. В том то и дело, что как? Юзер кликнул по диву.Сработала имитация.Файл выбран.Как прикрутить его к форме.Так как нужно что бы он передавался в форме, с остальными полями формы.

laimas 16.06.2020 16:06

Если файл выбран, отправляйте форму, есть два способа:
1) естественная отправка
2) способами по ссылкам

В чем проблема? Не могу в чем суть вопроса.

ureech 16.06.2020 16:08

Как форма узнает о файле,если он не в форме?

laimas 16.06.2020 16:10

Цитата:

Сообщение от ureech
если он не в форме

А что мешает его поместить в форму, ведь вам нужно еще отправить и другие данные и они в форме?

Nexus 16.06.2020 16:13

<form>
<button type="submit">Submit</button>
</form>

<input type="file"/>

<script>
  const form = document.querySelector('form');
  const fileInput = document.querySelector('[type="file"]');

  form.addEventListener('submit', e => {
    e.preventDefault();

    alert(fileInput.files.length ? `Name of chosen file: ${fileInput.files[0].name}` : 'Choose file');
  });
</script>

ureech 16.06.2020 16:13

Блин,laimas, вы прикалываетесь?


Часовой пояс GMT +3, время: 22:40.