input radio - как узнать выбранный пункт?
Есть input radio:
<label class="control-label">Отзыв о…</label> <p> <input type="radio" name="review_type" value="1" id="review_type1" checked> Работе в компании<br /> <input type="radio" name="review_type" value="2" id="review_type2"> Зарплате на должности<br /> <input type="radio" name="review_type" value="3" id="review_type3"> Собеседовании<br /> <input type="radio" name="review_type" value="4" id="review_type4"> Бонусах в компании<br /> </p> Пытаюсь определить выбранный пункт таким способом: window.onload = function(){ var rt1 = document.getElementById('review_type1'); var rt2 = document.getElementById('review_type2'); var rt3 = document.getElementById('review_type3'); var rt4 = document.getElementById('review_type4'); if (rt1.checked) { alert('Выбран 1 пункт'); } if (rt2.checked) { alert('Выбран 2 пункт'); } if (rt3.checked) { alert('Выбран 3 пункт'); } if (rt4.checked) { alert('Выбран 4 пункт'); } }; JS сообщает о пункте выбранном по умолчанию, при загрузке страницы, но если изменить выбор - никакой реакции от JS нет. При этом, в инструкциях которые видел, везде предлагают проверять через checked. Спрашивается... что я делаю не так? Или, чтобы отслеживать выбор в реальном времени - нужно еще событие клика ловить? Просьба подсказать на понятном новичку языке. |
Цитата:
Однако лучше отслеживать событие изменения состояния элемента («onchange»). |
Сделал так:
<p> <input type="radio" name="review_type" value="1" onclick="checkType()" checked> Работе в компании<br /> <input type="radio" name="review_type" value="2" onclick="checkType()"> Зарплате на должности<br /> <input type="radio" name="review_type" value="3" onclick="checkType()"> Собеседовании<br /> <input type="radio" name="review_type" value="4" onclick="checkType()"> Бонусах в компании<br /> </p> function checkType() { alert(getCheckedRadioValue('review_type')); } function getCheckedRadioValue(name) { var elements = document.getElementsByName(name); for (var i=0, len=elements.length; i<len; ++i) if (elements[i].checked) return elements[i].value; } Работает, хотя не знаю, на сколько данный способ наилучший. |
Walk, можно упростить:
<input type="radio" name="review_type" value="2" onclick="checkType(*!*this*/!*)"> function checkType(node) { alert(node.value); } |
<p> <input type="radio" name="review_type" value="1" checked> Работе в компании<br /> <input type="radio" name="review_type" value="2"> Зарплате на должности<br /> <input type="radio" name="review_type" value="3"> Собеседовании<br /> <input type="radio" name="review_type" value="4"> Бонусах в компании<br /> </p> <script> document.querySelector('p').onclick = function(e) { alert(e.target.value); } </script> |
document.querySelectorAll('input[name="review_type"]:checked') |
Часовой пояс GMT +3, время: 21:49. |