选择单选按钮时显示div-组合javascripts

选择单选按钮时显示div-组合javascripts,javascript,radio-button,Javascript,Radio Button,我试图根据单选按钮组中选择的单选按钮选项显示div的内容。棘手的是,还有另一个单选按钮组一级,其选择需要控制第二个单选按钮组的选择。例如: 单选按钮组1 选项:A、B、C 单选按钮组2 选项:X、Y、Z 当选择“A”时,我需要自动选择“X”。以这种方式选择X时,需要显示Div-01 当选择“B”时,我需要自动选择“Y”。以这种方式选择Y时,需要显示Div-02 等等 我一直在拼凑不同的javascript代码片段,并能够使自动选择或“display div”功能正常工作,但决不能同时使用这两种功

我试图根据单选按钮组中选择的单选按钮选项显示div的内容。棘手的是,还有另一个单选按钮组一级,其选择需要控制第二个单选按钮组的选择。例如:

单选按钮组1 选项:A、B、C

单选按钮组2 选项:X、Y、Z

当选择“A”时,我需要自动选择“X”。以这种方式选择X时,需要显示Div-01

当选择“B”时,我需要自动选择“Y”。以这种方式选择Y时,需要显示Div-02

等等

我一直在拼凑不同的javascript代码片段,并能够使自动选择或“display div”功能正常工作,但决不能同时使用这两种功能。下面是我一直在使用的各种代码片段。我希望这里有人能解释一下如何修改/组合这些功能,以便所有功能都能正常工作

自动选择:

<script>
$(document).ready(function(){
$("input[name='radiogroup1']").change(function(){
if($("input[name='radiogroup1']:checked").val() == "A")
{
   $("input:radio[name='radiogroup2'][value='X']").attr('checked', 'checked');
}
if($("input[name='radiogroup1']:checked").val() == "B")
{
   $("input:radio[name='radiogroup2'][value='Y']").attr('checked', 'checked');
}
if($("input[name='radiogroup1']:checked").val() == "C")
{
   $("input:radio[name='radiogroup2'][value='Z']").attr('checked', 'checked');
}
});
});</script>
用于DIV显示的HTML:

<script>
$(document).ready(function () {
$('#showfield1').click(function () {
    $('#div2').hide('fast');
    $('#div3').hide('fast');
    $('#div1').show('fast');
});
$('#showfield2').click(function () {
    $('#div1').hide('fast');
    $('#div3').hide('fast');
    $('#div2').show('fast');
});
$('#showfield3').click(function () {
    $('#div1').hide('fast');
    $('#div2').hide('fast');
    $('#div3').show('fast');
});
});
</script>
.testfields div{
    display: none;
}
<div class="testfields" align="center" style="padding:25px;width: 300px;">
                   <div id="div1">Text for Div 1</div>
                   <div id="div2">Text for Div 2</div>
                   <div id="div3">Text for Div 3</div>
              </div>

第1分部的文本
第2分部的文本
第3分部的文本
表格一

<form name="form1" enctype="multipart/form-data">
 <input type="radio" value="A" name="radiogroup1" /> A<br />
  <input type="radio" value="B" name="radiogroup1" /> B<br />
  <input type="radio" value="C" name="radiogroup1" /> C<br />
</form>

A
B
C
表格二

<form name="form2" enctype="multipart/form-data">
 <input type="radio" value="X" name="radiogroup2" id="showfield1" /> X<br />
  <input type="radio" value="Y" name="radiogroup2" id="showfield2" /> Y<br />
  <input type="radio" value="Z" name="radiogroup2" id="showfield3" /> Z<br />
</form>

X
Y
Z

谢谢

您应该使用prop而不是attr。当前代码只触发一次更改事件,即第二次选择单选按钮时,RadioGroup 2不会得到更新。下面的代码片段完成了您要查找的内容

            $("input[name='radiogroup1']").change(function () {
                switch ($("input[name='radiogroup1']:checked").val()) {
                    case "A":
                        checkRadio(0); showField(0);
                        break;
                    case "B":
                        checkRadio(1); showField(1);
                        break;
                    case "C":
                        checkRadio(2); showField(2);
                        break;
                }

            });
            var checkRadio= function(idx) {
                $("input:radio[name='radiogroup2']").each(function(i){
                    if (i == idx)
                        $(this).prop('checked', 'checked');
                    else
                        $(this).prop('checked', false);
                });

            }
            var showField = function (idx) {
                $('.testfields div').each(function (i) {
                    if (i == idx)
                        $(this).show('fast');
                    else
                        $(this).hide('fast');
                });
            }

您可以按如下方式更改每个if条件:
if($).val(=“A”){$((输入:radio[name='radioroup2'][value='X']).attr('checked','checked');$('div2')。hide('fast');$('div3')。hide('fast');$('div1')。show('fast')
@PankajKathiriya,感谢您的回复!我用您的代码创建了一个JSFIDLE,但它不起作用。如果我做错了什么,你能检查一下并告诉我吗?谢谢你的回复!我用您的代码创建了一个JSFIDLE,但它似乎根本不起作用。你能检查一下,看看我有没有做错什么吗?您忘了选择左边的jquery和onDomReady。它按预期工作。我更新了小提琴。