2011-11-14 134 views
1

我有一个单选按钮,有两个可能的值是或不是。 我想当用户按是的一个div会出现,当没有 隐藏div。单选按钮隐藏并显示div jquery

我的代码,但它不工作:

<script type="text/javascript"> 
        $(document).ready(function() { 
        $("div.desc").hide(); 
        $("input[name$='pain']").click(function() { 
        var test = $(this).val(); 
        $("div.desc").hide(); 
        $("#" + test).show(); 
        }); 
        }); 
       </script> 

     <div id="fieldsetInner"> 
       <fieldset class="rightInner"> 
       <legend>pain</legend> 
       <label for="pain" class="label2">do you feel pain ; </label> 
       <input name="pain" type="radio" value="yes" id="yes" checked="checked"/> Yes &nbsp; 
       <input name="pain" type="radio" value="no"/> No 

       <div id="yes" class="desc"> 
       <label for="pain-feature1-morph" class="label2">Morph : </label> 
       </div> 
      </div> 

在此先感谢

+0

你缺少在代码中关闭标签所以请将此并重新进行检查 – 2013-07-11 04:59:14

回答

2

你可以做

$("input#yes").click(function() { 
    $("div.desc").show(); 
}); 
$("input#no").click(function() { 
    $("div.desc").show(); 
}); 
+0

我猜想在输入否,我们必须调用隐藏功能。 不幸的是我的代码出了问题。 这是一样的,而不是div ,而在脚本中写span.desc? – user494766

+0

非常感谢我用你的代码所带来的问题,那就是我将它插入到头部。 – user494766

2

我希望这将有助于你

<input name="pain" type="radio" value="yes" id="yes"/> Yes 
    <input name="pain" type="radio" value="no" id="no" /> No 


    $('input:radio[name=pain]').click(function() { 
     if ($('#yes').attr('checked')) { 
      $('.desc').show(); 
      } else if ($('#no').attr('checked')) { 
      $('.desc').hide(); 
      } 

     }); 
1

你有一个重复的id在你的HTML中,你试图展示的div和'yes'单选按钮的id都是'yes'。文档中的ID应该是唯一的。

一旦你定你的HTML,这应该工作 -

$(document).ready(function() { 
    $("input[name$='pain']").change(function() { 
     var test = $(this).val(); 
     $("div.desc").hide(); 
     if ($("div#" + test).length > 0) $("div#" + test).show(); 
    }) 
}); 

演示 - http://jsfiddle.net/mSLeA/