首页 > 解决方案 > 如何获取选中的单选按钮。显示未定义

问题描述

我如何获得下面所选单选按钮的值是我的 html

<select id="pages>
   <option>option here</option>
   <option>option here</option>
</select>

<div class="form-group">
  <label for="line_spacing" class="col-sm-3 control-label">Line Spacing</label>
   <div class="col-sm-7">
     <div class="radio line_spacing_radio">
        <label>
          <input type="radio" name="line_spacing" value="Double Spacing" />
          <span class="cr"><i class="cr-icon glyphicon glyphicon-ok-sign"></i></span>
            Double Spacing
        </label>

        <label>
          <input type="radio" name="line_spacing" value="Single Spacing" />
          <span class="cr"><i class="cr-icon glyphicon glyphicon-ok-sign"></i></span>
            Single Spacing
        </label>
       </div>
    </div>
</div>

我有一个效果很好的事件,并且能够实时检索选定的值,但是我的人的问题是在执行另一个事件时获取单选按钮的值我尝试了多个选择器似乎对我不起作用可能是什么问题。

以下是我切换收音机时起作用的事件。

$('input[type=radio][name=line_spacing]').change(function() {

   line_spacing_data = this.value;


});

以上将正确地给出选定的收音机但是当我尝试时

var line_spacing = $('input[type=radio][name=line_spacing]:checked').val();

或者

var line_spacing = $('input[name="line_spacing"]:checked').val();

或者

var line_spacing2 = $('[name="line_spacing"]:checked').value;

我得到的只是未定义,这是因为我想获得在另一个动作中使用它的值。

这就是我想要检查收音机的方式

$('#pages').on('change', function(){

    var line_spacing2 = $('[name="line_spacing"]:checked').value;
});

标签: javascriptjqueryjquery-ui

解决方案


您可能太早执行该行,即在选择任何收音机之前。您的收音机未选中,因此查询不会选择任何元素。调用.val()一个空集合:undefined.

每当您想要获取当前检查的 radio的值(如果有)时,都需要在事件处理程序中运行查询!


推荐阅读