Top.Mail.Ru
Ответы
Аватар пользователя
1 год назад
от
Изменено

Помогите с кодом

Ниже форма, в ней находятся RadioButton, мне нужно с помощью java считать какой ответ выбран, java код ниже
<form>
<div class="otvet">
<input type="radio" name="v1" value="1" id="va1">
<label for="contactChoice1">Kaspersky</label>
</div>
<div class="otvet">
<input type="radio" name="v1" value="2" id="va1">
<label for="contactChoice1">Dr.Web Security Space</label>
</div>
<div class="otvet">
<input type="radio" name="v1" value="3" id="va1">
<label for="contactChoice1">PRO32 Total Security</label>
</div>
<div class="otvet">
<input type="radio" name="v1" value="4" id="va1">
<label for="contactChoice1">F-Secure SAFE</label>
</div>
<div class="otvet">
<input type="radio" name="v1" value="5" id="va1">
<label for="contactChoice1">Нет такой программы</label>
</div>
<button id=".btn" onClick="testik()">zhmi</button>
<p>Ваши баллы: <span class="result"></span></p>
<script src="../java/test.js">
</script>
</form>
Вот java
const checkedRadioButton = document.querySelector('input[name="v1"]:checked');

function testik(){
if (checkedRadioButton !== null) {
console.log(`Выбран ${checkedRadioButton.value}`);
} else {
console.log('Ни один radiobutton не выбран');
}
}
Проверьте, скажите что не так, код не работает нормлаьно, он постоянно выдает, что Ни один radiobutton не выбран

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Мыслитель

В коде есть несколько проблем:

1. checkedRadioButton определяется сразу при загрузке страницы, до того как пользователь выберет радиокнопку. Поэтому оно всегда будет равно null.

2. Нужно переопределить checkedRadioButton внутри функции testik(), чтобы оно проверялось уже после нажатия кнопки.

3. Id всех радиокнопок одинаковые, это некорректно. Они должны быть уникальными.

Вот исправленный код:

function testik(){
const checkedRadioButton = document.querySelector('input[name="v1"]:checked');

if (checkedRadioButton) {
console.log(`Выбран ${checkedRadioButton.value}`);
} else {
console.log('Ни один radiobutton не выбран');
}
}

Изменения:

- checkedRadioButton определяется внутри функции
- Исправлены уникальные id для каждой радиокнопки

Теперь при нажатии кнопки он будет проверять выбранную радиокнопку и правильно работать.

Аватар пользователя
Мудрец

Этот человек настолько уверен что он пишет на java, что даже папку так назвал...
Вспомнил глупый (как мне тогда показалось) мем

1
 Когда оказалось, что вместо C++ ты 3 месяца изучал html 

Я тогда подумал что так не бывает, как же я ошибался...

Аватар пользователя
Оракул

https://codepen.io/norbert123/pen/MWLOmxB
так нормально работает

Аватар пользователя
Мастер

бро, в форме надо preventDefault добавить чтобы страница не обновлялось