2012-05-08 3 views
0

私は、ゼロアイテムからランダムな長さのリストを動的に生成します。各アイテムにはチェックボックスが含まれています。ラジオボタンとは異なり、すべてのチェックボックスをオフにすることはできますが、ラジオボタンのようににすることができます。をチェックします。これを強制するために、私は(ここでは与えられた回答に基づいて:jQuery - checkboxes like radiobuttons)jQueryの使用しています:JQuery:ラジオボタンとしてのチェックボックス、デフォルト選択無し

var $radiocheck = $('input.radiocheck'); 
$radiocheck.click(function() { 
    if($(this).is(':checked')) { 
     $(this).attr('checked', false); 
    } 
    else if($(this).not(':checked')) { 
     $radiocheck.removeAttr('checked'); 
     $(this).attr('checked', true); 
    } 
}); 

...しかし、それは(チェックボックスのチェックを外したまま動作しない、それが現在立っているよう

に私のコードはありますクリック)。どんな助けもありがとう!

+1

"とは、上記のいずれも" のための余分なラジオボタンを追加します。チェックボックスが何かのように動作するようにすると、ユーザーを混乱させる危険性があります。 – Blazemonger

答えて

4
var $radiocheck = $('input.radiocheck'); 

$radiocheck.on('click', function() { 
    $radiocheck.not(this).prop('checked', false); 
    this.checked = this.checked===true ? true:false; // to toggle, otherwise just set to true 
});​ 

FIDDLE

+1

すばらしい答えですが、.attr()呼び出しを置き換えるには '.prop(" checked "、false);'を使用してください。 [.prop()](http://api.jquery.com/prop/) – DefyGravity

+0

あなたは正しく編集されています! – adeneo

+0

華やかさ - ありがとうございました:) – Eamonn

1

ワン:

var $radiocheck = $('input.radiocheck'); 

    $radiocheck.on('click', function() { 
     $radiocheck.not(this).attr('checked', false); 
     this.checked = this.checked; 
    }); 

DEMO: One

2:

DEMO: Two

1

adeneoのアプローチを使用して別の答えが、選択のためのCSSクラスを使用せずに210

var $radiocheck = $('input.radiocheck'); 

    $radiocheck.on('click', function() { 
    $radiocheck.not(this).attr('checked', false).find(this).attr('checked', this.checked); 
    }); 

$(document).ready(function() { 
    var $radiocheck = $(":checkbox"); 
    $radiocheck.on('click', function() { 
    $radiocheck.not(this).attr('checked', false); 
    this.checked = this.checked === true ? true : false; 
    }); 
}); 

FIDDLE

関連する問題