基于列表的复选框检查

时间:2012-10-26 21:43:01

标签: jquery checkbox angularjs

我正在使用angularjs v0.9来实现我的会员资格系统......

目前,我有两个控制器......

var selected = []
function Ctrl1(){
    checkCheckboxesByIds(selected );
    //users will select a list of values from checkboxes..
    $('#renewlist input:checked').each(function() {
    selected.push($(this).attr('value'));
    });    
}

function Ctrl2(){
//call an api function with "selected"
}

然而,在Ctrl2的html中,如果用户选择了错误的复选框,它会让用户选择回到之前的位置。

我用Google搜索并找到了这个功能

function checkCheckboxesByIds(ids) {
 $.each(ids, function(i, id) {
    $('#member-' + id).attr('checked', 'checked'); 
 });
}

然而,这仅在75%的时间内起作用。如果我反复点击后退和前进,有时会无法检查复选框...

无论如何我可以让它变得更加万无一失吗?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

如@wirey所述

我真的应该使用.prop('checked',true)来设置checked属性。

function checkCheckboxesByIds(ids) {
 $.each(ids, function(i, id) {
    $('#member-' + id).prop('checked',true); 
 });
}

它仍然不是万无一失,因为我第六次提交并返回时,将不会选中复选框。但这对我的目的来说已经足够了。

谢谢。