questions = {javascript: [], css: [],...}
Что делаю не так?
question-block, а потом ещё раз, а потом ещё и отдельно question-field? Почему не найти один раз question-field, не сохранить в переменную и дальше уже с ней работать?this - точно в данном случае текущий элемент цикла? Читабельнее было бы всё же использовать аргументы.$(this).attr('value'); но зачем? Если this в данном контексте - очередной элемент question-field, то почему бы не просто this.value?
<form action="" id="f">
<input type="text" name="test" value="lorem">
</form>f.addEventListener('submit', event => {
event.preventDefault();
alert(event.target['test'].value)
})