2011-07-21 95 views
1

如何使此JS代码与td id =“sel”中的所有复选框一起工作?onclick按名称检查复选框

$(document).ready(function() { 
    $('input[name="selector"]').click(function() { 
     $("#sel :checkbox").attr('checked', $(this).is(':checked')); 
    }); 
}); 
+3

'id'属性必须是唯一的。 – Sarfraz

+0

我做了这个检查每个td id =“sel”的所有复选框,但是当我单击选择器时,它只选择第一个复选框,我该如何解决这个问题。 – Eduard

+0

@edduvs你只能拥有一个id为“sel”的td,以便将它们分组,理想的方法是使用属性“name”而不是“id”。例如'' – BenAlabaster

回答

2

试试这个

$(document).ready(function() { 
    $('input[name="selector"]').click(function() { 
     $("#sel input:checkbox").attr('checked', $(this).is(':checked')); 
    }); 
}); 
0

啊好的,这是有道理的...所以它就像一个'全选'选择器?下面是一个例子...

//Attach to our select all checkbox 
$("input:checkbox[name='SelectAll']").click(function() { 
    var checked = $(this).is(":checked"); 
    //Skip up to the nearest common container that holds your 
    //SelectAll and SelectItem checkboxes... i.e. table 
    var container = $(this).closest("table"); 
    container.find("input:checkbox[name='Selector']").attr('checked', checked); 
}); 

同样的事情会被用于具有ID“选择”的SEL中的所有复选框...

//Attach to our select all checkbox 
$("input:checkbox[name='SelectAll']").click(function() { 
    var checked = $(this).is(":checked"); 
    $("td#sel input:checkbox").attr("checked", checked); 
}); 

提示:你只能有一个如果你有多个单元格,那么只有第一个单元格会被该ID识别,如果你想让多个单元格有一个同名的“ID”,你必须使用“name “属性而不是”id“属性:

更改您的td definintio n至<td name="sel" />并使用选择

$("td[name='sel'] input:checkbox").attr("checked", checked); 

现在你可以有多个小区的“选择”选择和你所有的复选框,将检查...

0

这里是我的最终解决方案谢谢大家!

$(document).ready (function() { 
    $('input[id="selector"]').click (function() { 
     var arr = [ {foreach from = $membri item = id} "{$id.id}", {/foreach} ]; 
     jQuery.each (arr, function() { 
      $("#sel" +this+ ":checkbox").attr ('checked', $("#selector").is(':checked')); 
     }); 
    }); 
});