2012-05-04 7 views
4

をクリックしたときにチェックボックスをチェックし、私はラジオボタンのこのセットを持っていることを確認します、のはラジオボタンが

radio 1 
radio 2 
radio 3 
radio 4 

やチェックボックスをしましょう。

checkbox 1 

達成したいのは、ラジオ1またはラジオ3のいずれかをクリックすると、チェックボックス1がチェックされます。チェックボックスがオンで、ラジオ2またはラジオ4のいずれかをクリックすると、チェックボックスはオフになります。

私はすでにそれのためにいくつかのコードを実装し、それは私がラジオ1をクリックしたとき、それはチェックボックスにチェックを入れますことを、このグリッチを持っていますが、私はラジオ3をクリックしたときには、チェックボックスのチェックを外します。

まあたぶん、私はラジオ1をクリックしたときには、チェックしますと、私はラジオ3をクリックします場合でも、それは、チェックボックスのチェックを外してはいけません。あなたは他の多くの方法でそれを行うことができますが

jQuery('#radio1 input:radio, #radio3 input:radio').click(function(){ 
    var checkbox = jQuery('#checkbox1'); 
    checkbox.attr('checked', !checkbox.attr('checked')); 
}); 

答えて

3

HTMLコード:

Radio1 :<input type="radio" id="radio1" name="radio"/><br> 
Radio2 :<input type="radio" id="radio2" name="radio"/><br> 
Radio3 :<input type="radio" id="radio3" name="radio"/><br> 
Radio4 :<input type="radio" id="radio4" name="radio"/><br> 
Checkbox :<input type="checkbox" id="checkbox1"/> 

jQueryのCODE:

jQuery('#radio1 , #radio3').click(function(){  
jQuery('#checkbox1').attr('checked', true); 
});   
jQuery('#radio2 , #radio4').click(function(){  
jQuery('#checkbox1').attr('checked', false); 
}); 

ライブDEMO:あなたが確立してきたロジックには区別はありません..私は思うの代わりに、コピーや機能を貼り付ける

http://jsfiddle.net/hQbpZ/

+0

'attr' =>' prop' =>真VS 'にチェック'。 – gdoron

2
$('input[type="radio"]').click(function(){ 
    var checkbox = $('#checkbox1'); 
    switch(this.id){ 
     case 'radio1': 
     case 'radio3': 
     checkbox.attr('checked', true); 
     break; 

     case 'radio2': 
     case 'radio4': 
     checkbox.attr('checked', false); 
     break; 
    } 
}); 
+0

、最初の関数は、静的にtrueまたはfalseにチェックを設定し、第二べきです関数は、checked属性を第1の関数の反対に静的に設定する必要があります。現在、ユーザーが実際にクリックした内容にかかわらず、コードはチェックボックスをトグルし続けます。 – Bryan

+0

@BryanMoyles私は今、私のコードは、実際にそれがより良い投票は一つだけチェックボックスがあります –

+0

正しいと思います。 – Bryan

1
jQuery('#radio1, #radio3').click(function(){ 
    jQuery('#checkbox1').prop('checked', true); 
}); 

jQuery('#radio2, #radio4').click(function(){ 
    jQuery('#checkbox1').prop('checked', false); 
}); 

:ここ

は私のコードです。もう一つの例:

jQuery(':radio').change(function(){ 
    var toCheck = this.id == 'radio1' || this.id == 'radio3'; 
    jQuery('#checkbox1').prop('checked', toCheck); 
}); 

Demo(マークアップ@Matrixから取られた)

+0

属さないはず意図ソリューション:) – Jetoox

+0

@Jetoox。おっとっと。 'checkbox1'は悪い名前です... :)修正ありがとう! – gdoron

+0

これは人間を働かせません。それにもかかわらず、それは – Jetoox