6 / 6 / 5
Регистрация: 19.09.2011
Сообщений: 463
1

Динамическая загрузка файлов type=file

07.07.2016, 21:08. Показов 1177. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте
Есть инпут type=file
ПОСЛЕ каждой загрузки файла, динамически добавляется еще поле type=file
HTML5
1
<input type="file" class="fil">
JavaScript
1
$('.fil').clone().insertAfter('.fil');
Пожалуйста, помогите сделать условие - если на странице уже есть один и более инпутов с не загруженным файлом, то еще один не добавлять (не клонировать), что-то типа:
JavaScript
1
2
3
if(/*если на странице уже есть инпут с не загруженным файлом, то еще один не клонировать*/){
  $('.fil').clone().insertAfter('.fil');
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.07.2016, 21:08
Ответы с готовыми решениями:

Проверка input[type=file]
Здравствуйте. Подскажите. Есть форма, пример: &lt;form method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&gt; &lt;input...

Имитация клика на input[type='file]
В общем, у меня есть условный див с картинкой и input &lt;div&gt;&lt;input style='position: absolute; display:none' type='file'&gt; ...

Получить изображение из input type='file'
Здравствуйте. Имеется такой код (function ($) { $.extend({ uploadPreview : function (options) { var settings...

13
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
07.07.2016, 21:17 2
sashgera, а как вы определяете загружен файл или нет?
0
6 / 6 / 5
Регистрация: 19.09.2011
Сообщений: 463
07.07.2016, 21:34  [ТС] 3
Цитата Сообщение от BANO Посмотреть сообщение
sashgera, а как вы определяете загружен файл или нет?
пока никак - для этого и обратился за помощью
может быть так?:
JavaScript
1
$('.fil').value == '';
Добавлено через 6 минут
Цитата Сообщение от BANO Посмотреть сообщение
sashgera, а как вы определяете загружен файл или нет?
BANO, или вы имеете ввиду когда происходит клнирование type=file? - Запихал в функцию change
JavaScript
1
$('.fil').clone().insertAfter('.fil');
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
07.07.2016, 22:21 4
sashgera, пока вы форму не отправите, все эти файлы остаются у пользователя на компе...
0
6 / 6 / 5
Регистрация: 19.09.2011
Сообщений: 463
07.07.2016, 22:49  [ТС] 5
BANO, я наверное не правильно сформулировал вопрос и вы меня не совсем поняли
допустим, на странице есть три инпута type=file,
два инпута - с загруженным файлом
один инпут пустой - файл не загружен
нужно
1) узнать, сколько на странице пустых инпутов
2) сделать условие - если один и более инпутов пустые (файл не загружен), то клонирование нового инпута не делать

количество на странице всех инпутов, можно узнать так:
JavaScript
1
var fff = $('.fil').length;
а вот как узнать количество только пустых инпутов..?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
07.07.2016, 23:04 6
sashgera, нет, скорее вы запутались в терминологии
вы наверное под "загруженым" файлом имеете в виду, что у инпута уже есть значение, то есть файл для загрузки выбран
так вот
еси вы имеете в виду именно это, то тогда можно сделать вот такой код
Javascript
1
2
3
$(".fil").filter(function(){
    return !!this.files[0]
}).length
0
6 / 6 / 5
Регистрация: 19.09.2011
Сообщений: 463
07.07.2016, 23:15  [ТС] 7
Цитата Сообщение от BANO Посмотреть сообщение
вы наверное под "загруженым" файлом имеете в виду, что у инпута уже есть значение, то есть файл для загрузки выбран
да, именно это я имел в виду
BANO, только я не понял, что выполняет приведенный вами код? как применить этот код к условию?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
07.07.2016, 23:38 8
Цитата Сообщение от sashgera Посмотреть сообщение
а вот как узнать количество только пустых инпутов..?
вот такой код узнаёт количество пустых инпутов
JavaScript
1
2
3
$(".fil").filter(function(){
    return !this.files.length
}).length
0
6 / 6 / 5
Регистрация: 19.09.2011
Сообщений: 463
08.07.2016, 00:01  [ТС] 9
BANO, а как записать в переменную результат функции и применить переменную в условии. Пожалуйста, если не трудно
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
08.07.2016, 00:07 10
JavaScript
1
2
3
4
5
if(!$(".fil").filter(function(){
    return !this.files.length
}).length){
  $('.fil').clone().insertAfter('.fil');
}
0
6 / 6 / 5
Регистрация: 19.09.2011
Сообщений: 463
08.07.2016, 00:51  [ТС] 11
BANO, применил ваш код
сейчас на странице два инпута, изначально они пустые, в первый инпут выбираю файл, после выбора файла выполняется клонирование нового инпута, хотя по условию клонироваться не должен т.к. второй инпут пустой
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
08.07.2016, 01:16 12
sashgera, а у меня работает
приходится даже его ограничивать, чтобы он слишком много всего не создавал
вот посмотрите
код
JavaScript
1
2
3
4
5
6
7
$(document).change(".fil",function() {
  if (!$(".fil").filter(function() {
      return !this.files.length
    }).length) {
    $('.fil:first').clone().insertAfter('.fil:last');
  }
})


Добавлено через 43 секунды
sashgera, ограничения нужны, чтобы не было возведения в квадрат
0
6 / 6 / 5
Регистрация: 19.09.2011
Сообщений: 463
08.07.2016, 01:59  [ТС] 13
BANO, да вижу, у вас все работает, значит что-то не так у меня, буду искать ошибку. Вам большое спасибо!
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
08.07.2016, 02:26 14
клонировать объект нужно чистый
держать его в переменной и затем подставлять.
таким образом делается так-же очистка объекта
и чем не угодил multiple?
ведь можно сразу выбирать несколько файлов
HTML5
1
<input type="file" multiple="multiple" name="files[]" title="Необходимо выбрать минимум один файл" id="files" />
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.07.2016, 02:26
Помогаю со студенческими работами здесь

Сохранение изменённой картинки, input[type=file]
Здравствуйте. Помогите разобраться с такой задачей : Есть страница, где пользователю предлагается загрузить картинку, например...

Записать имя файла в тег при выборе из input type=file
Здравствуйте, помогите пажалуйста, не могу догнать как сделать с jquery так, чтобы когда выбрана картинка в поле input type file имя...

Динамическая загрузка страниц JQuery + AJAX
Здравствуйте. Подскажите как переходить от одной страницы к другой без перезагрузки страницы?

динамическая выгрузка файлов из папки на сервере
Здравствуйте, получилась вот такая неприятная ситуация. С помощью jquery + php сделал страницу, на которую автоматически выводятся картинки...

Js Input type=file, ajax, php загрузка картинки в папку на сервере
Доброго времени суток! Впервые пытаюсь работать с Input type=file , помогите разобраться как мне загрузить картинку в папку на сервере?? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

Новые блоги и статьи
Разбиваем монолит на два микросервиса и реализуем CI/CD
ArchitectMsa 20.03.2025
Когда команда растет, а функциональность монолита расширяется, поддерживать и развивать такую систему становится все труднее. Разработчики начинают тратить много времени на разбор сложных. . .
Python и PDF: Создание и редактирование файлов
py-thonny 20.03.2025
Работа с PDF-документами – одна из популярных задач в современной разработке. Python предлагает несколько инструментов для создания, чтения и редактирования PDF-файлов, среди которых особенно. . .
Корутины в Unity и производительно­сть WaitForSeconds
GameUnited 20.03.2025
Разработчики игр на Unity часто сталкиваются с вопросом: как выполнять действия через определённые промежутки времени, не блокируя основной поток игры? Тут как раз и приходят на помощь корутины —. . .
Криптография в PHP
Jason-Webb 20.03.2025
PHP предоставляет много криптографических возможностей: от встроенных функций хеширования до полноценных библиотек шифрования — арсенал средств довольно обширен. Но всё это бесполезно без понимания. . .
Lineedge (Semi-Alpha) 0.75@20: Что мы потеряли
Etyuhibosecyu 20.03.2025
С каждым новым стандартом Lineedge обретает новые возможности — это ясно, как божий день. Однако есть и другая сторона — избавление от устаревших и проблемных элементов. Обычно удаление. . .
Реализация перечислений в Go
golander 19.03.2025
Если вы перешли на Go с других языков программирования (как я), таких как C#, Java или Python, вы наверняка заметили, что Go не имеет встроенной поддержки перечислений (enumerations). Это может стать. . .
Шаблон API Gateway в микросервисной архитектуре
MatrixArchitect 19.03.2025
API Gateway — один из основных компонентов микросервисной архитектуры. Фактически, API Gateway представляет собой сервис, который располагается между клиентскими приложениями и бэкенд-микросервисами,. . .
C++26: Что мы потеряли
bytestream 19.03.2025
С каждым новым стандартом C++ обретает новые возможности — это ясно, как божий день. Однако есть и другая сторона — избавление от устаревших и проблемных элементов. Обычно удаление функциональности. . .
Async/await в C#: Асинхронное программировани­е в действии
UnmanagedCoder 19.03.2025
Разработка современных приложений немыслима без понимания асинхронного программирования. Если вы когда-либо создавали приложение, которое взаимодействует с внешними ресурсами — будь то работа с. . .
Сопоставление с образцом (Pattern Matching) в Python: Списки и словари
py-thonny 19.03.2025
Программисты любят, когда код говорит сам за себя. Представьте, что вы можете просмотреть структуру данных и мгновенно понять, что с ней делать — без сложных условий и вложенных проверок. Именно эту. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru