Я пытаюсь использовать HTML, Jquery и Node.js для разработки онлайн-теста для своих студентов. В настоящее время, когда я отправляю форму, сервер получает объект json (используя body-parser), который включает только те поля, на которые был дан ответ. Однако мне также нужно иметь возможность видеть, какие из них не были ответом. Например, если мой ученик отвечает на вопросы 1, 2, 3, но не отвечает на 4, сервер показывает следующее:
{В1: а, В2:б, В3:в}
Я хочу получить:
{Q1: a, Q2:b, Q3:c, Q4:''}
Я пытался искать в Интернете, однако в большинстве сообщений объясняется, как избавиться от пустых ответов, а не как их включать.
Это то, что у меня есть прямо сейчас
<div id = "FormContainer1" class = "container">
<form id = "Form1" action = "/Form1" method = "POST">
<div class = "row">
<div class = "col">
<div class = "row">
<label> 1. </label>
<label>A </labe> <input type = "radio" name = "Q1" value = "A">
<label>B </labe> <input type = "radio" name = "Q1" value = "B">
<label> C </labe> <input type = "radio" name = "Q1" value = "C">
<label> D </labe> <input type = "radio" name = "Q1" value = "D">
</div>
<div class = "row">
<label> 2. </label>
<label> A </labe> <input type = "radio" name = "Q2" value = "A">
<label> B </labe> <input type = "radio" name = "Q2" value = "B">
<label> C </labe> <input type = "radio" name = "Q2" value = "C">
<label> D </labe> <input type = "radio" name = "Q2" value = "D">
</div>
<div class = "row">
<label> 3. </label>
<label> A </labe> <input type = "radio" name = "Q3" value = "A">
<label> B </labe> <input type = "radio" name = "Q3" value = "B">
<label> C </labe> <input type = "radio" name = "Q3" value = "C">
<label> D </labe> <input type = "radio" name = "Q3" value = "D">
</div>
<div class = "row">
<label> 4. </label>
<label> A </labe> <input type = "radio" name = "Q4" value = "A">
<label> B </labe> <input type = "radio" name = "Q4" value = "B">
<label> C </labe> <input type = "radio" name = "Q4" value = "C">
<label> D </labe> <input type = "radio" name = "Q4" value = "D">
</div>
</div>
</div>
</div>
<div class = "row">
<div class = "col">
<input type = "submit" value = "Submit">
</div>
</div>
</form>
а на сервере у меня
app.post('/Form1', urlencodedParser, function(request,response){ console.info(request.body); })
Вы можете добавить скрытый переключатель для каждого вопроса, отмеченного checked
:
<input type = "radio" name = "Q4" value = "" style = "display: none;" checked>
К вашему сведению, в большинстве ваших закрывающих тегов
</label>
есть опечатка, в которой отсутствует последняя буква «l».