只选择一个复选框并为选中的输入添加类

时间:2013-11-18 04:19:26

标签: javascript jquery checkbox

我有一个复选框列表,想要选中唯一一个复选框并添加复选框输入的类,然后选择另一个复选框从现有复选框中删除该类

 $('input.myclass').click(function () 
  {
        var id =  $(this).attr('id').replace('image-','');
        $('input.myclass:checked').not(this).removeAttr('checked');

        var sFilter = "";
        $('input.myclass[type=checkbox]').each(function () {
            sFilter = sFilter + (this.checked ? $(this).val() : "");
        });
    check();    
    });

    function check(){
    var a = $('input:checkbox[name=cover_image]:checked').val();
    alert(a);
    }

如果未选中该复选框,我只想为选中的复选框选择一个复选框和类,然后删除该类的

3 个答案:

答案 0 :(得分:1)

如果你真的想出于某种原因使用复选框(而不是单选按钮),请执行以下操作:

$('input:checkbox').on('click', function () {
    $('input.selected').removeClass('selected').prop('checked', false);
    $('input:checked').addClass('selected');
});

编辑:删除属性有效,但属性操作是一种更好的方法(如RobG所建议)

答案 1 :(得分:1)

您可以使用on()收听复选框组的更改。

var $checkBoxes = $(":checkbox").on("change", function () { // Here listening the changes on checkbox using on()
  $checkBoxes.removeClass("change").attr("checked", false); // remove the class from existing Checkbox
  $(this).addClass("change").attr("checked", true); // adding the class for the currenly checked checkbox
});

工作FIDDLE就在这里

答案 2 :(得分:1)

出于您的目的,首先从所有复选框中删除类并取消选中它们,然后将类添加到单击复选框并将其选中,如下所示

$("input[type='checkbox']").on('click', function () {
    $("input[type='checkbox']").removeClass('selected').attr('checked', false);
    $(this).addClass('selected').attr('checked', true);
});

检查此问题Fiddle