1

以下是我尝试获取收音机更改价值的方法:

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
4

3 回答 3

4

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

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

工作演示

于 2013-08-12T15:04:50.897 回答
3

你可以这样做

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

工作小提琴

于 2013-08-12T15:07:44.590 回答
3

一个更简化的...

 var $radios = $('input:radio[name=extract_action]:checked');
    $radios.change(function() {
        val = $radios.val();
        alert(val);
    });
于 2013-08-14T05:44:45.897 回答