0

我正在使用 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 中,如果用户错误地选择了一个复选框,它可以让用户选择返回到上一个。

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

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

但是,这仅在 75% 的情况下有效。如果我反复单击后退和前进,有时会无法选中复选框...

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

先感谢您。

4

1 回答 1

0

正如@wirey 提到的

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

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

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

谢谢你。

于 2012-10-27T06:10:34.537 回答