2011-01-05 18 views
0

は私のHTMLです:jQuery:これらの要素をどのように表示/非表示にしますか?ここ

<ul> 
    <li> 
    <p><label><input type="checkbox" name="permission" value="1" class="permission_check" checked> Joe Schmoe</label></p> 
    <p class="radio_option"><label><input type="radio" name="viewpromote" value="1"> View and Promote</label></p> 
    <p class="radio_option"><label><input type="radio" name="createedit" value="1" checked> ...plus Create and Edit</label></p> 
    </li> 
    <li> 
    <p><label><input type="checkbox" name="permission" value="1" class="permission_check" checked> Bob Smith</label></p> 
    <p class="radio_option"><label><input type="radio" name="viewpromote" value="1" checked> View and Promote</label></p> 
    <p class="radio_option"><label><input type="radio" name="createedit" value="1"> ...plus Create and Edit</label></p> 
    </li> 
</ul> 

私がする必要がどのようなユーザー・チェック/ permission_check入力のチェックを外したときに、それはそのリスト項目のradio_option要素を表示/非表示すべきです。

答えて

5
$('.permission_check').change(function(){ 
    $(this).closest('li').find('.radio_option').toggle(this.checked); 
}).change(); 

change()を呼び出すと、可視性を正しく初期化するためにコードがロードされたときにコールバックが1回トリガされます。

DEMO

参考:changeclosestfindtoggle

+0

上のスポット。ありがとうフェリックス! – Shpigford

+0

@Shpigford:どうぞよろしくお願いいたします。 –

1
$('input[type="checkbox"]').change(function() { 
    $(this).closest('li').find('input[type="radio"]').toggle($(this).is(':checked')); 
}); 
0

IDがラジオボタンに属性を追加して、JavaScriptを使用して

は、あなたが行うことができます:

function showhideOnClick() { 
    if(permission == true) 
    document.getElementById("radioControlID").style.display = "none"; 
    else 
    document.getElementById("radioControlID").style.display = "block"; 
} 
+0

downvoteの理由は何ですか? – VoodooChild

1
そのような

何か:

$('.permission_check').change(function(){ 
    $(this).parents('li').find('.radio_option').toggle(); 
}); 
+0

'クリック 'を使うと、チェックボックスを変更するキーボードや他のマウス以外の方法を忘れてしまいます。 –

+0

本当にありがとうございます。 – Andy

1
$(".permission_check").change(function() { 
    var $options = $(this).parents("li").find("p.radio_option"); 
    if ($(this).is(":checked")) { 
     $options.show(); 
    } 
    else { 
     $options.hide(); 
    } 
} 
関連する問題