如何设置无线电选项检查onload与jQuery?
需要检查是否没有设置默认值,然后设置默认值
如何设置无线电选项检查onload与jQuery?
需要检查是否没有设置默认值,然后设置默认值
当前回答
例如,你有这样的单选按钮:
<input type='radio' name='gender' value='Male'>
<input type='radio' name='gender' value='Female'>
你想检查一个值为“Male”的onload,如果没有检查无线电:
$(function() {
var $radios = $('input:radio[name=gender]');
if($radios.is(':checked') === false) {
$radios.filter('[value=Male]').prop('checked', true);
}
});
其他回答
这适用于多个单选按钮
$('input:radio[name="Aspirant.Gender"][value='+jsonData.Gender+']').prop('checked', true);
我喜欢@Amc的答案。我发现表达式可以进一步压缩,以不使用filter()调用(@chaiko显然也注意到了这一点)。同样,对于jQuery v1.6+, prop()是对抗attr()的方法,请参阅jQuery文档中关于prop()的官方最佳实践。
考虑一下@Paolo Bergantino回答中的相同输入标签。
<input type='radio' name='gender' value='Male'>
<input type='radio' name='gender' value='Female'>
更新后的一行代码可能是这样的:
$('input:radio[name="gender"][value="Male"]').prop('checked', true);
例如,你有这样的单选按钮:
<input type='radio' name='gender' value='Male'>
<input type='radio' name='gender' value='Female'>
你想检查一个值为“Male”的onload,如果没有检查无线电:
$(function() {
var $radios = $('input:radio[name=gender]');
if($radios.is(':checked') === false) {
$radios.filter('[value=Male]').prop('checked', true);
}
});
当获取无线电输入值时,请注意以下行为:
$('input[name="myRadio"]').change(function(e) { // Select the radio input group
// This returns the value of the checked radio button
// which triggered the event.
console.log( $(this).val() );
// but this will return the first radio button's value,
// regardless of checked state of the radio group.
console.log( $('input[name="myRadio"]').val() );
});
因此$('input[name="myRadio"]').val()不返回单选输入的检查值,正如您所期望的那样——它返回第一个单选按钮的值。
//如果你在javascript或者像backbone这样的框架上做,你会遇到很多这种情况 可以是这样的
$MobileRadio = $( '#mobileUrlRadio' );
而
$MobileRadio.checked = true;
不会起作用,
$MobileRadio[0].checked = true;
会的。
你的选择器也可以像上面推荐的那样。