2010-11-10 67 views
1

我有一个简单的表格:jQuery的事件()

<div class="class_a"> 
     <fieldset> 
     <label><input type="radio" id="radio10" name="color" value="1" />Red</label><br /> 
     <label><input type="radio" name="color" value="2" />Yellow</label><br />  
     <label><input type="radio" name="color" value="3" />Blue</label><br /> 
     <label><input type="radio" name="color" value="4" />Purple</label><br /> 
     </fieldset> 
    </div> 
<div class="block-cms"> 
     <fieldset> 
     <label><input type="radio" name="time" value="6" />12</label><br /> 
     <label><input type="radio" name="time" value="7" />11</label><br />  
     <label><input type="radio" name="time" value="8" />10</label><br /> 
     <label><input type="radio" name="time" value="9" />9</label><br /> 
     </fieldset> 
</div> 

什么即时试图在这里做的是通过使用jQuery的变化()隐藏掉第二个字段集。

$("input#radio10").change(function() { 
     var checked = true; 
     checked = checked && $(this).is(':checked'); 
     if ($('input#radio10:checked')) { 
      $('.block-cms').show() 
      } 
     else { 
      $('.block-cms').hide(); 
     } 
    }); 

不确定这里有什么问题。任何人都可以建议我应该做什么不同请吗?

回答

2

你的id不应该有#,这是选择器,它应该只是id="radio10"

改变这种状况,这是你应该是什么之后:

$(".class_a :radio").change(function() { 
    $(".block-cms").toggle($("#radio10:checked").length > 0); 
}); 

You can test it out here

+0

对不起,那是简单的拼写错误。但仍然不起作用。 – Dom 2010-11-10 10:10:32

+0

@Dom - 检查演示,是不是你在之后,只显示红色被选中? – 2010-11-10 10:11:45

+0

谢谢! – Dom 2010-11-10 10:13:31

0

首先元素上的id应该是radio10而不是#radio10

然后使用此代码

$("input[name='color']").change(function() { 
    if ($('input#radio10').is(':checked')) { 
      $('.block-cms').show() 
      } 
     else { 
      $('.block-cms').hide(); 
     } 
    }); 
0

这里的另一种解决方案(IMO有上<input type="radio">一个id好像有点不对劲我):

$("input[name='color']").change(function() { 
     if ($(this).val() == 1) { 
      $('.block-cms').show() 
      } 
     else { 
      $('.block-cms').hide(); 
     } 
    });