JQuery:如何获得选中的单选按钮值?

时间:2010-11-09 21:33:25

标签: javascript jquery jquery-selectors

如何将未选中的单选按钮的值默认为0

我有以下HTML:

<input type="radio" name="myradiobutton" value="1" />1
<input type="radio" name="myradiobutton" value="2" />2
<input type="radio" name="myradiobutton" value="3" />3

我有以下代码来获取所选单选按钮的值

var radio_button_value $('input[name=myradiobutton]:radio').click(function() {var value = $(this).val();});

问题是,如果选择了 nothing ,我希望将radio_button_value的值默认为0。我该怎么做?

我基本上想要在下面执行pseduo代码(但这不起作用)

var radio_button_value $('input[name=myradiobutton]:radio').click(function() { 
if set
  return $(this).val();
else
  return 0;
});

更新

似乎对我的要求感到困惑。

当页面加载时(在用户甚至有机会选择单选按钮之前)我想要做的事情,我想要一个为单选按钮值返回0的函数。

然后,一旦用户选择了一个单选按钮,该SAME功能将返回所选的单选按钮值。

有意义吗?

11 个答案:

答案 0 :(得分:91)

$('input[name=myradiobutton]:radio:checked')会为您提供所选的单选按钮 $('input[name=myradiobutton]:radio:not(:checked)')将为您提供未选中的单选按钮

使用此功能可以执行此操作

$('input[name=myradiobutton]:radio:not(:checked)').val("0");

更新:阅读更新后,我想我明白了 你会想要做这样的事情

var myRadioValue;

function radioValue(jqRadioButton){
  if (jqRadioButton.length) {
    myRadioValue = jqRadioButton.val();
  }
  else {
    myRadioValue = 0;
  }
}

$(document).ready(function () {
  $('input[name=myradiobutton]:radio').click(function () {   //Hook the click event for selected elements
    radioValue($('input[name=myradiobutton]:radio:checked'));
  });

  radioValue($('input[name=myradiobutton]:radio:checked')); //check for value on page load
});

答案 1 :(得分:18)

使用:checked选择器确定是否选择了值:

function getRadioValue () {
    if( $('input[name=myradiobutton]:radio:checked').length > 0 ) {
        return $('input[name=myradiobutton]:radio:checked').val();
    }
    else {
        return 0;
    }
}

更新您可以随时调用上述功能以获取所选单选按钮的值。您可以在加载时挂钩,然后每当值随以下事件而变化时:

$(document).ready( function() {
    // Value when you load the page for the first time
    // Will return 0 the first time it's called
    var radio_button_value = getRadioValue();

    $('input[name=myradiobutton]:radio').click( function() {
        // Will get the newly selected value
        radio_button_value = getRadioValue();
    });
}

答案 2 :(得分:9)

页面加载后会立即启动。 您可以将其保留在某些事件中,例如按钮单击

$("#btn").click(function() { 
var val= $('input[type="radio"]:checked').val();
});

答案 3 :(得分:6)

jQuery("input:radio[name=myradiobutton]:checked").val();

答案 4 :(得分:3)

可能最好的方法(特别是如果您希望能够发布默认值),可能是一个隐藏的单选按钮,该按钮从选择开始并具有您的默认值。所以像这样:

<input type="radio" name="myradiobutton" value="0" checked="checked" style="display:none;" />
<input type="radio" name="myradiobutton" value="1" />1
<input type="radio" name="myradiobutton" value="2" />2
<input type="radio" name="myradiobutton" value="3" />3

如果您无法直接修改html,可以通过脚本添加它:

$(function() {
    $('input[name=myradiobutton]:radio:first').before('<input type="radio" name="myradiobutton" value="0" checked="checked" style="display:none;" />');
});

以下是一个演示:http://jsfiddle.net/Ender/LwPCv/

答案 5 :(得分:3)

我知道这是一个老问题,但我发现答案还不够充分

最简洁的方法是使用此代码

$(".myRadio").click(function() {
alert($(this).val());   
});

: - )

您的表单输入数据应该如下所示

<input type="radio" value="40000" name="pay"  class="myRadio" />
<label for="40000">40000</label>

答案 6 :(得分:3)

当页面加载时,此Jquery方法返回默认值0

$('input[type="radio"]:checked').val();

答案 7 :(得分:3)

要获取所选单选按钮的值,请使用RadioButtonName和包含RadioButton的表单ID。

$('input[name=radioName]:checked', '#myForm').val()

仅限

$('form input[type=radio]:checked').val();

答案 8 :(得分:2)

如果没有选择某些内容的实例,你应该使用复选框。

根据W3C

  

如果共享相同控件名称的集合中的单选按钮最初“打开”,则用户代理行为用于选择哪个控件最初“打开”是未定义的。注意。由于现有实现以不同方式处理这种情况,因此当前规范与RFC 1866([RFC1866]第8.1.2.4节)不同,后者指出:

     

在任何时候,都会检查一组中的一个单选按钮。如果一组单选按钮中没有一个元素指定“CHECKED”,则用户代理必须首先检查该组的第一个单选按钮。

     

由于用户代理行为不同,作者应确保在每组单选按钮中最初“开启”。

答案 9 :(得分:2)

这项工作对我来说希望这会有所帮助: 要获得无线电选择值,您必须使用比率名称作为选择器,如此

selectedVal = $('input[name="radio_name"]:checked').val();

selectedVal将具有所需的值,根据您的情况更改radio_name,在您的情况下,它将是“myradiobutton”

selectedVal = $('input[name="myradiobutton"]:checked').val();

答案 10 :(得分:-1)

对于单选按钮,请使用以下脚本:

var myRadio = $('input[name=meme_wall_share]');
var checkedValue = myRadio.filter(':checked').val();