2010-11-10 25 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(); 
     } 
    });