如何将未选中的单选按钮的值默认为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功能将返回所选的单选按钮值。
有意义吗?
答案 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();