检查是否选中了 div 中的单选按钮之一
Check if one of the radio buttons within a div is checked
我在这里发现这个脚本几乎可以满足我的需要(查看是否选中了 div 中的一个单选按钮),不过,它会针对每个单选按钮提醒我,我只需要一个提醒,如果其中一个被选中。
背景资料:
如果选中一个,我将显示下一个 div。否则 div 将不会显示。在我的系统顶部,单击选中的单选按钮将取消选中它,然后显示的 div 将被隐藏。
我的代码:
<div class="divtop">
<input type="radio" name="r1" value="v1" />
<input type="radio" name="r1" value="v2" />
<input type="radio" name="r1" value="v3" />
<div>
这是脚本:
$('.divtop input:radio').live('click', function(event) {
var div = $("div.divtop");
var radiobuttons = div.find("input[type='radio']");
for (var i = 0; i < radiobuttons.length; i++) {
if (radiobuttons[i].type === 'radio' && radiobuttons[i].checked) {
alert ('on') // action
} else {
alert ('off') // action
}} });
我如何调整此脚本以在选中其中一个单选按钮时只收到一个警报?
该函数必须是通用的(不使用单选按钮名称),因为它将适用于具有不同单选按钮组的不同情况。
针对您对 post 的评论,我突然想到您可以通过一些简单的 css 实现您想要的:
[type="radio"], [type="radio"]:checked + .inner{
display:block;
}
.inner{
display:none
}
<div class="divtop">
<input checked type="radio" name="r1" value="v1" />
<div class="inner">ONE</div>
<input type="radio" name="r1" value="v2" />
<div class="inner">TWO</div>
<input type="radio" name="r1" value="v3" />
<div class="inner">THREE</div>
<div>
您可以检查第一个 div 是否检查了收音机,然后显示另一个 div。
$(document).ready(function(){
$('.divtop > input:radio').change(function(){
if($(this).is(":checked"))
{
$('.divMiddle').removeClass('hide');
}
});
});
.hide
{
display: none;
}
.show
{
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="divtop">
<input type="radio" name="r1" value="v1" />ONE
<input type="radio" name="r1" value="v2" />TWO
<input type="radio" name="r1" value="v3" />THREE
<div>
<div class="divMiddle hide">
<input type="radio" name="r11" value="v11" /> ONE
<input type="radio" name="r11" value="v22" /> TWO
<input type="radio" name="r11" value="v33" /> THREE
</div>
我在这里发现这个脚本几乎可以满足我的需要(查看是否选中了 div 中的一个单选按钮),不过,它会针对每个单选按钮提醒我,我只需要一个提醒,如果其中一个被选中。
背景资料: 如果选中一个,我将显示下一个 div。否则 div 将不会显示。在我的系统顶部,单击选中的单选按钮将取消选中它,然后显示的 div 将被隐藏。
我的代码:
<div class="divtop">
<input type="radio" name="r1" value="v1" />
<input type="radio" name="r1" value="v2" />
<input type="radio" name="r1" value="v3" />
<div>
这是脚本:
$('.divtop input:radio').live('click', function(event) {
var div = $("div.divtop");
var radiobuttons = div.find("input[type='radio']");
for (var i = 0; i < radiobuttons.length; i++) {
if (radiobuttons[i].type === 'radio' && radiobuttons[i].checked) {
alert ('on') // action
} else {
alert ('off') // action
}} });
我如何调整此脚本以在选中其中一个单选按钮时只收到一个警报?
该函数必须是通用的(不使用单选按钮名称),因为它将适用于具有不同单选按钮组的不同情况。
针对您对 post 的评论,我突然想到您可以通过一些简单的 css 实现您想要的:
[type="radio"], [type="radio"]:checked + .inner{
display:block;
}
.inner{
display:none
}
<div class="divtop">
<input checked type="radio" name="r1" value="v1" />
<div class="inner">ONE</div>
<input type="radio" name="r1" value="v2" />
<div class="inner">TWO</div>
<input type="radio" name="r1" value="v3" />
<div class="inner">THREE</div>
<div>
您可以检查第一个 div 是否检查了收音机,然后显示另一个 div。
$(document).ready(function(){
$('.divtop > input:radio').change(function(){
if($(this).is(":checked"))
{
$('.divMiddle').removeClass('hide');
}
});
});
.hide
{
display: none;
}
.show
{
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="divtop">
<input type="radio" name="r1" value="v1" />ONE
<input type="radio" name="r1" value="v2" />TWO
<input type="radio" name="r1" value="v3" />THREE
<div>
<div class="divMiddle hide">
<input type="radio" name="r11" value="v11" /> ONE
<input type="radio" name="r11" value="v22" /> TWO
<input type="radio" name="r11" value="v33" /> THREE
</div>