Как поместить значение длины массива в элемент?

Доброго времени суток!

У меня есть такой код
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Input type=file</title>
</head>
<body>		
	<label for="">
		<span>Прикрепить фото</span>
		<span>(</span><span id="dinamic_number">0</span><span>/</span><span>4</span><span>)</span>
	</label>
	<input id="inputfile" type="file" multiple="multiple">
	<script src="jquery.min.js"></script>
	<script>
		var fileInput = document.getElementById("inputfile");
		$(fileInput).change(function(){
			var files = fileInput.files;
			var i;
				for (i=0; i<=files.length; i++);
			var length = i-1;
			var dinamic_number = document.getElementById("dinamic_number");
			if (length>0){
				console.log(length)
				$(dinamic_number).find(length);
			}			
		});
	</script>
</body>
</html>


Мне нужно поместить полученную длину массива в элемент с id="dinamic_number" при добавлении файлов в инпут.
Подскажите пожалуйста как это сделать.
И еще есть вопрос в том как ограничить число добавляемых файлов через этот инпут.
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
bitniks
@bitniks
Go/PHP/Symfony developer
С проверкой на количество файлов
var fileInput = $('#inputfile');
var dinamicNumber = $('#dinamic_number');
fileInput.change(function(){
    var length = fileInput[0].files.length;
    if (length > 4) {
      fileInput.val('');
      length = 0;
      alert('Не больше 4 файлов');
    }

    dinamicNumber.text(length); 
});

https://jsfiddle.net/ctsrnx03/

Переписал скрипт, так как там есть бессмысленные вещи. Например, подсчет количества файлов с помощью цикла, хотя files.length и есть то самое количество. Так же можно выполнять поиск элементов страницы сразу на jQuery, раз уж он подключен.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы