Javascript 如何在更改前获取所选单选按钮的值?
我有多个单选按钮共享相同的名称。其中一个旁边有一个隐藏的div 当选择了正确的单选按钮时,我想显示/隐藏它旁边的div“如果有” 这里有一个例子 第一台 第二台 第三台 第四台 收音机2旁边有一个隐藏的div。我想在选择收音机2时显示它。然后,当选择Radio 4时,我想隐藏Radio 2 div 这就是我所做的Javascript 如何在更改前获取所选单选按钮的值?,javascript,jquery,hide,slideshow,Javascript,Jquery,Hide,Slideshow,我有多个单选按钮共享相同的名称。其中一个旁边有一个隐藏的div 当选择了正确的单选按钮时,我想显示/隐藏它旁边的div“如果有” 这里有一个例子 第一台 第二台 第三台 第四台 收音机2旁边有一个隐藏的div。我想在选择收音机2时显示它。然后,当选择Radio 4时,我想隐藏Radio 2 div 这就是我所做的 $(function(){ function getGroupElement(value) { return '#group_' + value.re
$(function(){
function getGroupElement(value)
{
return '#group_' + value.replace(':', '_');
}
var previous;
$("input[type='radio']").click(function(e) {
// Store the current value on focus and on change
previous = $(this).val();
console.log('Current:' + previous);
}).change(function(e) {
var previousGroupId = getGroupElement(previous);
var newGroupName = $(this).data('show-group');
//Hide the previous Group
$(previousGroupId).hide();
if ( ! newGroupName){
return;
}
$(newGroupName).show();
});
});
上面的“我的代码”无效,因为“上一个”已设置为下一个选定项
如何隐藏/显示正确的框
如果需要,这里是我的HTML
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<fieldset class="survey-control-fieldset">
<div class="survey-control-title">
Select a store
</div>
<div class="radio">
<label for="item_529"><input checked id="item_529" name=
"control_111" type="radio" value="112:529"> None</label>
</div>
<div class="radio">
<label for="item_530"><input id="item_530" name="control_111" type=
"radio" value="112:530"> Don't Know/No Answer</label>
</div>
<div class="radio">
<label for="item_532"><input data-show-group="group_112_532" id=
"item_532" name="control_111" type="radio" value="112:532">
Other</label>
<div id="group_112_532" style="display: none;">
<div class="form-group">
<label for="control_113">Specify Other Store Name</label>
<input class="form-control" id="control_113" name=
"control_113" placeholder="" type="text" value="">
</div>
</div>
</div>
<div class="radio">
<label for="item_531"><input id="item_531" name="control_111" type=
"radio" value="112:531"> Refused</label>
</div>
</fieldset>
</body>
</html>
选择一家商店
没有一个
不知道/没有答案
其他
指定其他存储名称
拒绝
隐藏收音机旁边的所有div,然后显示所选收音机旁边的div
$(":radio").next("div").hide();
$(this).next("div").show();
隐藏收音机旁边的所有div,然后显示选定收音机旁边的div
$(":radio").next("div").hide();
$(this).next("div").show();
如果为每个隐藏的div指定了相同的类名,则可以在显示新div之前将其全部隐藏:
$('.hidden-divs').not(newGroupName).hide();
$(newGroupName).show();
如果为每个隐藏的div指定了相同的类名,则可以在显示新div之前将其全部隐藏:
$('.hidden-divs').not(newGroupName).hide();
$(newGroupName).show();
请显示HTML而不是描述它。为什么需要
previous
变量?只需隐藏所有div,并显示所选按钮旁边的div。@Barmar我怎么知道要隐藏的div id?我添加了我的HTML请显示你的HTML而不是描述它。为什么你需要previous
变量?只需隐藏所有div,并显示所选按钮旁边的div。@Barmar我怎么知道要隐藏的div id?我加了我的HTMLTANK给你。我从上面的评论中采纳了你的建议。我所有的div都有相同的类名。隐藏全部,然后显示当前一个谢谢。我从上面的评论中采纳了你的建议。我所有的div都有相同的类名。隐藏全部,然后显示当前一个