JQuery:如何获得选定的单选button值?

我如何将一个非选定的单选button的值默认为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 

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

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

问题是,我想默认radio_button_value的值为0 ,如果没有select任何东西 。 我怎么做?

我基本上想做下面的pseduo代码(但这不起作用)

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

UPDATE

似乎对我所要求的有些混淆。

当页面加载时(在用户有机会select一个单选button之前),我想要做的是,我想要一个函数,它将为单选button值返回0。

然后,一旦用户select了单选button,该SAMEfunction将返回单选button的选定值。

合理?

$('input[name=myradiobutton]:radio:checked')将会得到你所选的单选button$('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 }); 

使用:checkedselect器来确定是否select了一个值:

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

更新你可以随时调用上面的函数来获取单选button的选定值。 您可以在加载时将其挂钩,然后在发生以下事件时更改值:

 $(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(); }); } 

它将在页面加载后立即启动。 你可以保持它在一些事件,如button点击

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

可能是最好的方法(特别是如果你想能够发布一个默认值),将有一个隐藏的单选button,作为select开始,并有你的默认值。 所以像这样的东西:

 <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/

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

最干净的方法是使用这个代码

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

🙂

你的表单input数据应该是这样的

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

这个jquery方法在页面加载时返回默认值0

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

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

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

或仅由

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

你应该真的使用checkbox,如果有一个实例没有select的东西。

根据W3C

如果共享相同控制名称的组中的单选button最初是“开”,则用于select哪个控制最初处于“开”的用户代理行为是未定义的。 注意。 由于现有的实现不同地处理这种情况,因此当前的规范与RFC 1866([RFC1866]第8.1.2.4节)不同,它指出:

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

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

这对我的工作希望这将有助于:要获得无线电选定的价值,你必须使用比率名称作为select这样的

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

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

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

对于单选button使用以下脚本:

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