一组 radio 未设置默认值,通过 js 无法正确获取其值
如题,有一组同名radio,未设置默认checked项。之后无论是否选中某项,通过js都无法获取到正确的值,一直返回的都是 第一项的value值。
走边路诺八嘎
9 years, 5 months ago
Answers
因为你都没有判断哪个radio被选中了= =
js
var submitBtn = document.querySelector('input[type=submit]'); submitBtn.addEventListener('click', function() { var radios = document.querySelectorAll('input[name=rad]'); getChecked(radios); }, false); function getChecked(radios) { // 把radio Nodelist转换成数组 var radiosArray = Array.prototype.slice.call(radios); radiosArray.forEach(function(item, index) { // 查看那个radio被选中了 if (item.checked) { console.log(item.value); } }); }
我不是小哲
answered 9 years, 5 months ago
给一个参考
html
<p><input type="radio" name="foo" value="aa"><label>aa</label></p> <p><input type="radio" name="foo" value="bb"><label>bb</label></p> <p><input type="radio" name="foo" value="cc"><label>cc</label></p> <p><input type="radio" name="foo" value="dd"><label>dd</label></p>
javascript
<script> var radios = Array.prototype.slice.call(document.querySelectorAll("input[type=radio]"),0); radios.forEach(function(radio){ radio.addEventListener("click",function(){ console.log(radio.value); },false); }); </script>
猫耳基德曼
answered 9 years, 5 months ago