2012-04-27 11 views
0

私はまだjqueryのを学んでいるが、これは私が「16」の値を持つラジオボタンを選択した場合はラジオボタンを選択した場合は、チェックして無効にするチェックボックス

は、私はクラスのニュースレターでチェックボックスをしたい何をしたいです選択してからチェックを外すことができなくなりました。

値が16のラジオボタンが選択解除されている場合、もう一度チェックボックスを使用できるようにしたいと思います。 (隣にコメント付き1)上記ifstayChecked = true;を入れて$(...).removeAttr('disabled');の代わりにstayChecked = false;を置くの下に選択されていないことが、それができないようにする

答えて

2

あなたのHTMLを見ることなく、私は単純なケースを想定しています。

$('input[type="radio"]').click(function() { 
    $('input.newsletter').attr({ 
     'checked': $(this).val() == 16, 
     'disabled': $(this).val() == 16 
    }); 
});​ 

jsFiddle example:ここではいくつかの短いjQueryのは、あなたが求めて何をするのです。

+0

非常に一般的なので+1 – 11684

+0

非常にいいです... 17ラジオボタンが選択されている場合は、チェックボックスをオフにしないので、それを変更する方法はありますか? –

+0

上記のチェックされた属性を '' checked ''に変更することができます:$(this).val()== 16 || $( 'input.newsletter')。attr( 'checked')!=未定義です。 http://jsfiddle.net/j08691/8J5y9/2/ – j08691

0
$("input[type=radio][name=<your radio button set name here>]").changed(function() { 
    if ($("input[type=radio][name=<your radio button set name here>]").val() == "16") { 
     $("input[type=checkbox].newsletter").attr('checked', 'checked'); 
     $("input[type=checkbox].newsletter").attr('disabled', 'disabled'); //this is one way to make it not unselectable 
    } 
    else { 
     $("input[type=checkbox].newsletter").removeAttr('disabled'); 
    } 
} 

もう一つの方法は、2行目の代わりにあります。そして、次のような別の関数を作る:

$("input[type=checkbox].newsletter").changed(function() { 
    if (stayChecked) { 
     $(this).attr('checked', 'checked'); 
    } 
}); 

注:あなたは、彼らが内部で宣言されている場合(スクリプトレベルまたは親関数の内部、つまり一般的なレベルにある2つの関数の外のどこかvar stayCheckedを宣言する必要がありますいずれか、のは言わせて、$(document).ready()関数)を呼び出します。

関連する問題