JQuery:Checkbox作为单选按钮,没有默认选择

时间:2012-05-08 18:31:35

标签: jquery

我有一个动态生成的列表,从零项开始随机长度,其中每个项目都包含一个复选框。与单选按钮不同,所有复选框都可以取消选中,但是像单选按钮一样,只能检查一个 。为了强制执行此操作,我使用的是JQuery(基于此处给出的答案:jQuery - checkboxes like radiobuttons

我目前的代码是:

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);
    }
});

...但它不起作用(复选框在点击时保持未选中状态)。任何帮助表示赞赏!

3 个答案:

答案 0 :(得分: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 :(得分:1)

一:

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

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

<强> DEMO: One

<强>两个

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

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

DEMO: Two

答案 2 :(得分:1)

使用adeneo的方法但没有使用css类进行选择的另一个答案:

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

FIDDLE