私はまだjqueryを学んでいますが、これが私が欲しいものです
値が「16」のラジオボタンが選択されている場合、クラスニュースレターのチェックボックスを選択して、チェックを外せないようにします。
値16のラジオボタンが選択解除されている場合、チェックボックスをもう一度使用できるようにします。
あなたのHTMLを見ずに、私は単純なケースを想定しています。これがあなたが求めたことをするための短いjQueryです:
$('input[type="radio"]').click(function() {
$('input.newsletter').attr({
'checked': $(this).val() == 16,
'disabled': $(this).val() == 16
});
});
$("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');
}
}
選択を解除できないようにする別の方法は、if
上記の下の2行目(横にコメントが付いている行)の代わりに、の代わりに配置することstayChecked = true;
です。次に、次のような別の関数を作成します。stayChecked = false;
$(...).removeAttr('disabled');
$("input[type=checkbox].newsletter").changed( function () {
if (stayChecked) {
$(this).attr('checked', 'checked');
}
});
注:var stayChecked
共通レベルで2つの関数の外側のどこかで宣言する必要があります(つまり、スクリプトレベルで宣言するか、$(document).ready()関数の内側で宣言されている場合は親関数の内側で宣言する必要があります)。