Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 29.01.2020, 18:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Kurt_D_Cobain,
выше удаление блока по клику на крестик, удалить из инпута не помогу, не знаю, нужен другой специалист.
Ответить с цитированием
  #12 (permalink)  
Старый 29.01.2020, 18:19
Аспирант
Отправить личное сообщение для Kurt_D_Cobain Посмотреть профиль Найти все сообщения от Kurt_D_Cobain
 
Регистрация: 30.01.2018
Сообщений: 31

Работает, благодарю. Не подскажете как на основании этого скрипта выводить данные файлов через ручное добавление файлов в инпут. Сейчас выводятся данные файлов только через закидывание в дроп зону. А при стандартной загрузке ничего не выводится. Я так понимаю это нужно в другом копать?
Ответить с цитированием
  #13 (permalink)  
Старый 29.01.2020, 18:20
Аспирант
Отправить личное сообщение для Kurt_D_Cobain Посмотреть профиль Найти все сообщения от Kurt_D_Cobain
 
Регистрация: 30.01.2018
Сообщений: 31

По удалению из инпута понял. Спасибо.
Ответить с цитированием
  #14 (permalink)  
Старый 29.01.2020, 18:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от Kurt_D_Cobain
Я так понимаю это нужно в другом копать?
на событие change инпута надо ставить обработку
что-то типа
input.addEventListener("change", function() {
handleFiles(this.files)
})
Ответить с цитированием
  #15 (permalink)  
Старый 29.01.2020, 18:54
Аспирант
Отправить личное сообщение для Kurt_D_Cobain Посмотреть профиль Найти все сообщения от Kurt_D_Cobain
 
Регистрация: 30.01.2018
Сообщений: 31

Спасибо! подключил, выводи, работает =)
let input = document.getElementById("callpopupform-uploads")
	input.addEventListener("change", function() {
		handleFiles(this.files)
	})
Ответить с цитированием
  #16 (permalink)  
Старый 29.01.2020, 18:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Kurt_D_Cobain,
Ответить с цитированием
  #17 (permalink)  
Старый 29.01.2020, 19:14
Аспирант
Отправить личное сообщение для Kurt_D_Cobain Посмотреть профиль Найти все сообщения от Kurt_D_Cobain
 
Регистрация: 30.01.2018
Сообщений: 31

Можете подсказать еще разок, хочу выводить счетчик количества загруженных файлов
когда загружаю файлы ничего не выводит, может тут не .on нужно???
Попробовал написать такое:
input.on('change', function counterFile(file) {
		let reader = new FileReader()
		reader.readAsDataURL(file)
		reader.onloadend = function() {
			let counter = document.createElement('span')
			counter.className = "counter";
			document.getElementById('gallery').appendChild(counter)
			counter.innerHTML = (this.files.length)
		}
	})
Ответить с цитированием
  #18 (permalink)  
Старый 29.01.2020, 19:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Kurt_D_Cobain,
если jquery то
$(input).on...
Ответить с цитированием
  #19 (permalink)  
Старый 29.01.2020, 19:42
Аспирант
Отправить личное сообщение для Kurt_D_Cobain Посмотреть профиль Найти все сообщения от Kurt_D_Cobain
 
Регистрация: 30.01.2018
Сообщений: 31

Я сделал, выводит только количество одного причем у каждого файла - закидываю файл рядом пишет 1, кидаю второй тоже рядом один у второго.
function handleFiles(files) {
		document.querySelectorAll("#gallery > div.new").forEach(div => div.classList.remove("new"));
		initializeProgress(files.length)
		for (let i = 0; i < files.length; i++) {
			let div = document.createElement('div');
			div.className = "new";
			document.getElementById('gallery').appendChild(div)
		};
		files = [...files];
		files.forEach(uploadFile)
		files.forEach(previewFile)
		files.forEach(previewName)
		files.forEach(previewSize)
		files.forEach(removeFile);

		let counter = document.createElement('span')
		counter.className = "counter";
		document.getElementById('gallery').appendChild(counter)
		counter.innerHTML = (files.length)
		counter.html(newContent)

	}
Ответить с цитированием
  #20 (permalink)  
Старый 29.01.2020, 19:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Kurt_D_Cobain,

let h1 = document.createElement('h1');
    document.getElementById('gallery').appendChild(h1);

	function handleFiles(files) {
	    document.querySelectorAll("#gallery > div.new").forEach(div => div.classList.remove("new"))
		initializeProgress(files.length)
        for (let i = 0; i < files.length; i++) {
            let div = document.createElement('div');
            div.className = "new";
            document.getElementById('gallery').appendChild(div)
        };
        h1.innerHTML = document.querySelectorAll("#gallery > div").length;
		files = [...files];
		files.forEach(uploadFile)
		files.forEach(previewFile)
		files.forEach(previewName)
		files.forEach(previewSize)
		files.forEach(removeFile);

	}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плавный Drag & drop div элемента rootking Events/DOM/Window 10 07.09.2010 13:03