Использовать нативный тег select, а для стилизации использовать js оттестированный например select2.
иначе будет слишком много косяков юзабильности. Это и переход по таб и раскрытие стрелкой и выбор через энтер....
Для начала можно использовать библиотеку, например https://validatejs.org/ но вообще нужно понимать как это работает. Вот эти подписи вообще может сервер отдавать если не прошла валидация
порядковые делаются просто циклом или js или шаблонизатором. Браузерный js не имеет доступа к файлам, поэтому нужно использовать серверный js (node.js) или другой серверный язык
400 слайдов - затея не очень. будут тормоза.