document.addEventListener('DOMContentLoaded', () => { const downloadCodeInput = document.getElementById('download_code_input'); const downloadButton = document.getElementById('download_button'); const downloadForm = document.getElementById('download_form'); downloadCodeInput.addEventListener('beforeinput', (e) => { if (/^[a-zA-Z0-9-]+$/.test(e.data)) { return; } e.preventDefault(); if (e.data === ' ') { downloadCodeInput.value += '-'; } }); const disableEnableDownload = () => { downloadButton.disabled = (downloadCodeInput.value === ''); }; disableEnableDownload(); downloadCodeInput.addEventListener('input', disableEnableDownload); downloadForm.addEventListener('submit', (e) => { if (downloadCodeInput.value === '') { e.preventDefault(); } else { setTimeout(() => { downloadCodeInput.value = ''; downloadButton.disabled = true; }, 0); } }); downloadCodeInput.focus(); });