2012-04-04 4 views
1

チェックボックスをオンにしたときに「Tシャツ」サイズを表示しようとしています。私はjQueryを使用していますが、コードを正しく動作させることができません。ここに私のコードは、これまで:CSS経由なし:チェックボックスをオンにしたときに別のオプションを表示する

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#tshirt').attr('checked'); 
     $("#sizes").show(); 
    }); 
); 
</script> 


<b>Cool T-Shirt</b>: <input type="checkbox" id="tshirt" name="tshirt"> <span class="price">$15</span>    
<span id="sizes"><bSize</b>: <input type="checkbox" name="size" value="S"> <span class="price">Small</span></span> 

現在ID「のサイズは、」表示に設定されています。私が助けが必要なのは、ユーザーがID「tshirt」のチェックボックスを選択したときに、ID「サイズ」を表示させたい場合です。どんな助けでも大歓迎です!

答えて

2

あなたはこのように、click()ハンドラ内にコードを配置する必要があります。

$(document).ready(function() { 
    $('input#tshirt').click(function() { 
     if($(this).is(':checked')) { 
      $("#sizes").show(); 
     } else { 
      $("#sizes").hide(); 
     } 
    }); 
}); 

これは、チェックボックスがチェックされたときに#sizesが表示され、それが非確認だ時にそれらを再び非表示になります。

<input>checked="checked"を追加するだけで、現在のJSに$('#tshirt').attr('checked');が追加されている理由がわかりません。

0

.toggle()が処理します。このようなものがあります。

$('#tshirt').click(function() { 
$('#sizes').toggle('slow', function() { 

'slow'は、 'fast'と他のパラメータで置き換えることができます。

+0

これは動作しますが、それは、チェックボックスのかどうかを確認する方が良いでしょうそれに基づいて行動します。 JSの別の部分がチェックされた状態を変更する可能性があり、逆の動作をします。 – Bojangles

2

あなたはこのような何かを行うことができる必要があります:

$(document).ready(function() { 
    $("#tshirt").change(function() { 
     if($(this).is(":checked")) { 
      $("#sizes").show(); 
     } else { 
      $("#sizes").hide();    
     } 
    }); 
}); 

それからちょうどCSSと、デフォルトでは非表示になっていることを確認してください。

#sizes { 
    display: none; 
} 
関連する問題