无法使用jQuery获取已检查无线电的值

时间:2013-08-12 14:59:40

标签: jquery jquery-selectors

以下是我如何尝试获取收音机的价值:

var $radios = $('input:radio[name=extract_action]');
$radios.change(function() {
    val = $(':checked', this).val();
    alert(val);
});

但警报显示“未定义”。 我试过

val = $(':checked', $(this)).val();

甚至

val = $(':checked', $radios).val();

但它是一样的。

修改

这是HTML标记:

<input name="extract_action" checked="checked" type="radio" value="1" /> Ok<br />
<input name="extract_action" type="radio" value="0" /> No

3 个答案:

答案 0 :(得分:4)

$(':checked', $radios).val();正在寻找$radios中元素的已检查子项,而不是过滤单选按钮集。相反,您将需要使用filter()函数:

var $radios = $('input:radio[name=extract_action]');
$radios.change(function() {
    val = $radios.filter(':checked').val();
    alert(val);
});

<强> Working Demo

答案 1 :(得分:3)

你可以这样做

$(function(){
  $('input:radio[name="extract_action"]').change(function(){
    alert(this.value);
  });
});
  

工作FIDDLE

答案 2 :(得分:3)

更简化的一个......

 var $radios = $('input:radio[name=extract_action]:checked');
    $radios.change(function() {
        val = $radios.val();
        alert(val);
    });