Обработка radio buttons
Приветствую.
Стоит задача: показать выбранное значение radio. Работает только при выборе первого переключателя. В остальных случаях показывает, что переключатель не выбран. Помогите, плиз, понять где ошибка. <form id="test-form"> <ul> <li><input type="radio" name="radio-button" value="one"></li> <li><input type="radio" name="radio-button" value="two"></li> <li><input type="radio" name="radio-button" value="three"></li> </ul> <input type="submit" value="Обработать"> </form> <script> const form = document.querySelector('#test-form'); form.addEventListener('submit', function (event) { const testValue = (this.querySelector('[name="radio-button"]').checked) ? this.querySelector('[name="radio-button"]').value : 0; alert (testValue); }); </script> |
const testValue = this.elements['radio-button'].value; |
Цитата:
const testValue = (this.querySelector('[name="radio-button"]').checked) ? this.elements['radio-button'].value : 0; |
Цитата:
Если их несколько, надо использовать querySelectorAll - получить ВСЕ элементы и перебирать их в цикле. |
Цитата:
const testValue = this.querySelector('[name="radio-button"]:checked').value Тогда у меня ещё один вопрос. Можно ли обойтись без цикла, чтобы переменной присваивать значение radio, которое отмечено и '0' если не отмечено ничего? Через условное ветвление, например? |
Цитата:
Какова вообще цель, может вы делаете то, без чего вообще можно обойтись? |
Цитата:
|
wrbanker, так задачи не описывают, это просто рассказ о нулях.
У вас форма, у нее поля, если нужно привести соответствие состояния неких переменных состоянию полей, значит простой обойти поля циклом и ... Но для этого нужно связать сами переменные с полями. В тоже время почему имена полей и их значения не могут сами служить таким набором? |
Ок, попробую описать задачу иначе. Есть страница с условной анкетой. После её заполнения пользователь нажимает кнопку и получает документ, который определён его ответами.
Я думаю, что перво-наперво необходимо отловить все его ответы и присвоить зависимые от ответов значения переменным. Далее, анализируя значения переменных, формировать документ. Возможно, что я не прав. |
Вот это уже ближе к телу, а тут два сценария - если этот документ готовит сервер, то то что вы делаете на клиенте лишено смысла. Серверу нужно просто отправить форму, он должен анализировать что пришло. Если документ готовится на клиенте, то зачем посредник в виде 0 и ... Формируйте документ, в который вставляйте нужное, получая ответы из обхода циклом полей формы.
|
Часовой пояс GMT +3, время: 23:10. |