#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 эта функция не поддерживается.
Смотрите здесь и здесь документацию о том, как использовать тег с его функциями и ограничениями.