2011-06-20 18 views
2

私はかなり簡単な質問があります - 私は考えていますが、私はそれを自分で解決することはできません。はい、私はいくつかの種類のスクリプトを必要とする値号チェックボックス2がチェックされている場合、チェックボックス1をオフにします。

と他が他にチェックされているとき、私は1をオフに支援する値を持つ ワン:

私は2つのチェックボックスがあります。だから私がチェックボックスをチェックする場合。 1 - チェックボックス番号。 2は自動的にチェックされなくなります。チェックボックスの1つ(常に1つのみ)は常にチェックする必要があります。そして、いいえ、私はこの場合ラジオボタンを使用できません。

それは私のjQueryを行うことができれば素晴らしいことだ - しかし、任意の助けを行うだろう:)

事前に感謝

ロバート

+14

なぜラジオボタンを使用できないのですか?これは*正確に*彼らが設計したものです。 – lonesomeday

+1

"いいえ、この場合はラジオボタンを使用できません。" - 精巧に行う。 –

+4

ラジオボタンを使用できない場合は、解析に問題があると思われます。ラジオボタンの振る舞いが正確であるからです。一歩踏み込んで、なぜ地球上でラジオボタンを使用できないのかを考えなければなりません。もう一度車輪を再構築しないでください。 –

答えて

1
$('#checkbox_1').change(function() { 

     if ($(this).is(':checked')) { 
      $('#checkbox_2').prop('checked', false); 
     } 
     else { 
      $('#checkbox_1').prop('checked', false); 
      $('#checkbox_2').prop('checked', true); 
     } 
    }); 

    $('#checkbox_2').change(function() { 

     if ($(this).is(':checked')) { 
      $('#checkbox_1').prop('checked', false); 
     } 
     else { 
      $('#checkbox_2').prop('checked', false); 
      $('#checkbox_1').prop('checked', true); 
     } 
    }); 

編集:今動作するはずです:-)

+0

こんにちは。どうもありがとう。 #checkbox_1と#checkbox_2、私のチェックボックスには何が関係していますか?イド?名? 私はこれら2つを持っています: #checkbox_1と#checkbox_2の代わりに、私はあなたのコードに何を入れますか?ええ、私は完全なばかだと知っています:) – Robert

+0

"checkbox_1"を "contact_yes"に、 "checkbox_2"を "contact_no"で置き換えるだけで十分でしょう。 – Thorsten

2
$("#checkbox1").bind('click', function(){ $("#checkbox2").removeAttr('checked'); }); 
$("#checkbox2").bind('click', function(){ $("#checkbox1").removeAttr('checked'); }); 
3

私が考えることができる最も簡単な方法は次のとおりです。

$('input:checkbox').change(
    function(){ 
     var group = this.name; 
     $(this).siblings('input:checkbox[name="'+ group + '"][checked]').removeProp('checked'); 
    }); 

JS Fiddle demo

しかし、いくつかの注意点がありますが、上記はremoveProp()を使用していますが、これはjQuery 1.6以上に限定されています。 1.6より前には、代わりにremoveAttr('checked')を代用することが可能でなければなりません。

してください、しかし、<input type="radio" />要素を使用して再考、これは、それらが処理して動作するように設計されているもの正確です。ロバートからのコメント(コメントでは、以下の)次


編集:計画通り

私はこの作業を得たが、...私の形で私は、チェックボックスの別のグループを持っており、彼らが得ます彼らはまったく異なる名前を持っていますが、制限もあります。しかし、私はユーザーがこれらのチェックボックスを複数選択できるようにする必要があります。あたかもスクリプトがすべてのチェックボックスグループに影響を与えるかのようです。私は実際にname = "'+ group +'"を入れることで、 "group"という単語で始まる名前のチェックボックスに関数を限定すると考えました。しかし、そうではないようです。

changeイベントハンドラを割り当てセレクタ

は/選択ページ に全てチェックボックスを適用 $('input:checkbox')あります。

は、特定のグループにのみチェックボックスにそれを適用するには、使用できます。

$('input:checkbox[name="checkboxGroupName"]').change(
    function(){ 
     $(this).siblings().removeProp('checked'); 
    }); 

参考文献:

+0

こんにちはDavid。どうもありがとう。私はこれを計画どおりに動かすことができましたが、私のフォームには別のグループのチェックボックスがあり、全く異なる名前を持っていますが、制限もあります。しかし、私はユーザーがこれらのチェックボックスを複数選択できるようにする必要があります。あたかもスクリプトがすべてのチェックボックスグループに影響を与えるかのようです。私は実際にname = "'+ group +'"を入れることで、 "group"という単語で始まる名前のチェックボックスに関数を限定すると考えました。しかし、そうではないようです。 – Robert

0
function ChkBoxClicked() { 
    $("#chkBoxList_0").bind('click', function() { $("#chkBoxList_1").removeAttr('checked'); }); 
    $("#chkBoxList_1").bind('click', function() { $("#chkBoxList_0").removeAttr('checked'); }); 

    if (($('#chkBoxList_0').is(':checked')) || ($('#chkBoxList_1').is(':checked'))) { 
     if ($('#chkBoxList_0').is(':checked')) { alert('chkBoxList_0'); return false; } 
     if ($('#chkBoxList_1').is(':checked')) { alert('chkBoxList_1'); return false; } 
    } else { 
     alert('non of the chkBoxList'); return false; 
    } 
} 

これは、私はそれが

0
$(document).ready(function() { 
    $(".checkbox1").click(function(event) { 
    $(this).parents('tr').children('td').children('.todos').prop('checked', false); 
    }); 
    $(".checkbox2").click(function(event) { 
     $(this).parents('tr').children('td').children('.checkbox1').prop('checked', false); 
    }); 

これは基本的にCheckBox1をがチェックされ、ユーザーはcheckbox2をチェックしようとしたとき、CheckBox1をがオフになると述べていた方法です。

関連する問題