jQuery重新检查复选框

时间:2011-01-01 05:13:39

标签: jquery ajax arrays push checkbox

我在重新检查一些复选框后遇到问题 和ajax调用更新表。

我有一个项目名为'shares'的表格。

我想:

1)检查并将任何已检查的份额保存到阵列中 2)做我的ajax调用以更新股票表 3)重新检查我们在ajax更新之前检查过的任何内容。

我的代码无效,我看不清楚原因?

任何提示,帮助或建议都非常感激。

// Array to hold our checked share ids
var savedShareIDs = new Array();

// Add checked share ids into array
$("input:checkbox[name=share_ids]:checked").each(function() {  
 savedShareIDs.push($(this).val());  
});     

// Do ajax update
Dajaxice.pagination_shares('Dajax.process',{'id':1, 'page':1})

// Re-check any that were checked before ajax update
$("input:checkbox[name=share_ids]").each(function()  
{  
 if ( $.inArray( $(this).val(), savedShareIDs) > -1 ) {   
  $(this).attr('checked',true)  
 }  
});

问题是复选框没有检查。
我很确定循环正常,inArray检查有效。

不要勾选复选框。 谁能看到我哪里出错?

感谢。

3 个答案:

答案 0 :(得分:0)

尝试更改

$(this).attr('checked',true) 

$(this).attr('checked','checked')

答案 1 :(得分:0)

为什么不尝试:

for (id in savedShareIDs)
    $("input:checkbox[value="+savedShareIDs[id]+"]").attr("checked", "checked");

答案 2 :(得分:0)

我假设你的逻辑是正确的。但是我看到attr表现得非常奇怪。

尝试使用$(this).data('checked','checked')代替