一组 radio 未设置默认值,通过 js 无法正确获取其值


如题,有一组同名radio,未设置默认checked项。之后无论是否选中某项,通过js都无法获取到正确的值,一直返回的都是 第一项的value值。

radio JavaScript

走边路诺八嘎 9 years, 5 months ago

因为你都没有判断哪个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);
    }
  });
}

codepan

我不是小哲 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

$('input[name=rad]:checked').val()

asdc110 answered 9 years, 5 months ago

Your Answer