У меня есть форма с вложенными входами, которые позволяют пользователю выбрать один вход для серии вопросов.
<div class="pollTemplate__questionWrapper" id="Q1">
<ul class="carouselNav__list pollTemplate__answers pollTemplate__answers--text">
<li class="pollTemplate__answer pollTemplate__answer--text carouselNav__listItem show" aria-hidden="false">
<input type="radio" name="Q1" id="A1" class="pollTemplate__answerOption" data-key="0" value="7998">
<label class="pollTemplate__answerLabel" for="A1">
I'll do whatever it takes to keep this countertop looking gorgeous.</label>
</li>
<li class="pollTemplate__answer pollTemplate__answer--text carouselNav__listItem show" aria-hidden="false">
<input type="radio" name="Q1" id="A2" class="pollTemplate__answerOption" data-key="1" value="3000">
<label class="pollTemplate__answerLabel" for="A2">
I'll care for this countertop as part of my regular cleaning schedule.</label>
</li>
<li class="pollTemplate__answer pollTemplate__answer--text carouselNav__listItem show" aria-hidden="false">
<input type="radio" name="Q1" id="A3" class="pollTemplate__answerOption" data-key="2" value="3666">
<label class="pollTemplate__answerLabel" for="A3">
I'll pay attention to this countertop now and then.</label>
</li>
</ul>
</div>
<div class="pollTemplate__questionWrapper" id="Q2">
<ul class="carouselNav__list pollTemplate__answers pollTemplate__answers--text">
<li class="pollTemplate__answer pollTemplate__answer--text carouselNav__listItem show" aria-hidden="false">
<input type="radio" name="Q2" id="A1" class="pollTemplate__answerOption" data-key="0" value="7998">
<label class="pollTemplate__answerLabel" for="A1">
I'll do whatever it takes to keep this countertop looking gorgeous.</label>
</li>
<li class="pollTemplate__answer pollTemplate__answer--text carouselNav__listItem show" aria-hidden="false">
<input type="radio" name="Q2" id="A2" class="pollTemplate__answerOption" data-key="1" value="3000">
<label class="pollTemplate__answerLabel" for="A2">
I'll care for this countertop as part of my regular cleaning schedule.</label>
</li>
<li class="pollTemplate__answer pollTemplate__answer--text carouselNav__listItem show" aria-hidden="false">
<input type="radio" name="Q2" id="A3" class="pollTemplate__answerOption" data-key="2" value="3666">
<label class="pollTemplate__answerLabel" for="A3">
I'll pay attention to this countertop now and then.</label>
</li>
</ul>
</div>
Я позволю пользователю выбирать только один ответ для каждого questionWrapper, а затем я добавлю свойство: checked в элемент ввода.
Но для того, чтобы я мог подчиниться бэкэнду, мне нужно передать действительную схему, которая захватывает вопрос и идентификатор ответа. Если пользователь не выбрал ответ на вопрос, то я должен передать пустой массив. Так что-то вроде этого:
{
"answers": [
{
"questionId": "Q1",
"answerIds": [
"A3"
]
},
{
"questionId": "Q2",
"answerIds": []
},
{
"questionId": "Q3",
"answerIds": [
"A4"
]
}
]
}
Я не уверен, как правильно сделать это с jQuery, поэтому любая помощь будет оценена.