2011-01-16 8 views
5

私のチェックボックスをラジオボタンのように動作させるために、次のjQueryコードを用意しています。jQuery - ラジオボタンのようなチェックボックスのチェックを外す

<script type="text/javascript" language="javascript"> 
$(document).ready(function() { 
    $("#testing input:checkbox").change(function(){ 
     var checkname = $(this).attr("name"); 
     $("input:checkbox[name='" + checkname + "']").removeAttr("checked"); 
     this.checked = true; 
    }); 
}); 
</script> 

チェックボックスは、次のようにレイアウトされています

<input type="checkbox" id="testing" name="testing" value="B"> 
<input type="checkbox" id="testing" name="testing" value="I"> 
<input type="checkbox" id="testing" name="testing" value="A"> 

これは、私はそれが仕事をしたい正確にどのように動作しますが、問題ありません、私は3のいずれかをクリックしたら、私はそれをunclickカント以外それらのどれもチェックされないように、これは私が起こりたいものなので、一度に1つだけをクリックするだけで、完全にチェックを外すことができます。

すべてのヘルプは壮大になります:)

答えて

12

のみthischeckedされている場合は、他のチェックを外し、コードを実行します。

例:http://jsfiddle.net/CX5Th/1/

$("#testing input:checkbox").change(function() { 
    if(this.checked) { 
     var checkname = $(this).attr("name"); 
     $("input:checkbox[name='" + checkname + "']").removeAttr("checked"); 
     this.checked = true; 
    } 
}); 

EDIT:はここでは、同じ名前を持つボックスを選択すると、未確認であることから、新たに確認ボックスを防ぐ改正です。現在のチェックボックスを除外するにはnot()(docs)を使用します。

例:http://jsfiddle.net/CX5Th/2/

$("#testing input:checkbox").change(function() { 
    if (this.checked) { 
     var checkname = $(this).attr("name"); 
     $("input:checkbox[name='" + checkname + "']").not(this).removeAttr("checked"); 
    } 
}); 
+0

うーん...おかげでたくさん:) – Cecil

+0

@Cecil:どういたしまして。 :o) – user113716

+0

@Ӫ_._。.not()を使用するとパフォーマンスが向上しますか? BTWありがとう、このタイプの機能をここで実装しようとすると、ユーザーはオプションのセットを持っていますが、どれも選択できません。ラジオを使用すると、オプションを望んでいない場合は、リセットボタンを作成してクリアする必要がありました。 –

0
$("input:checkbox").click(function(){ 
    var ischecked = $(this).attr('checked'); 
    $('input:checkbox').attr('checked',false); 
    $(this).attr('checked', ischecked); 
}); 

http://jsfiddle.net/yDPhv/

3

少ないコード!完璧に働いた:-)

var boxes = $("input:checkbox").click(function(){ 
    boxes.not(this).attr('checked', false); 
}); 

http://jsfiddle.net/YqSXA/1/

+0

いいねえ+1 –

関連する問題