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