Минимальное количество файлов для ввода

#html #file #input-field

Вопрос:

При использовании <input type="file" multiple> можно ли попросить пользователей ввести хотя бы n файлы?
Экс: <input type="file" min=5 multiple>

Ответ №1:

Требуется JavaScript. Добавьте прослушиватель событий для прослушивания change события на входе и проверьте количество загруженных файлов .files.length .

 var uploader = document.querySelector('input');
var error = document.querySelector('p');
uploader.addEventListener("change", function(){
  if(uploader.files.length < 5){
    error.style.display='block';
  }
}) 
 #error{
  display:none;
  color:red;
} 
 <input type="file" multiple/>
<p id="error">Please upload at least 5 files</p> 

Используйте его form для предотвращения отправки, если количество загруженных файлов меньше 5:

 var uploader = document.querySelector('input');
var error = document.querySelector('p');
function validate(){
  if(uploader.files.length < 5){
    error.style.display='block';
    return false;
  }
} 
 #error{
  display:none;
  color:red;
} 
 <form action="somewhere.php" onsubmit="return validate()">
<input type="file" multiple/>
<p id="error">Please upload at least 5 files</p>
<button>Submit files</button>
</form> 

Ответ №2:

Нет, к сожалению, у вас не может быть минимального и максимального количества входных данных, которые может иметь пользователь. Может быть добавлена позже, но начиная с HTML5 эта функция не поддерживается.

Смотрите здесь и здесь документацию о том, как использовать тег с его функциями и ограничениями.