【问题标题】:jQuery re-checking check boxesjQuery重新检查复选框
【发布时间】:2011-01-01 05:13:38
【问题描述】:

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

我有一个项目称为“共享”的表格。

我想:

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 检查工作正常。

只是不检查复选框。 谁能看出我哪里出错了?

谢谢。

【问题讨论】:

    标签: jquery ajax arrays push checkbox


    【解决方案1】:

    为什么不试试:

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

    【讨论】:

    • Hrm .. 可能 ajax 调用在 DOM 中做了一些让它不开心的事情。
    • $("input:checkbox[name=share_ids]").each(function() { if ( $.inArray( $(this).val(), savedShareIDs) > -1 ) { $(this).attr('checked',true); $(this).attr('checked','checked'); $(this).data('checked','checked'); str = "重新-检查“.concat($(this).val()); alert(str); } }); for (id in savedShareIDs) { $("input:checkbox[value=" + id + "]").attr("checked", true); }
    • 好吧,尝试在每次迭代中打印一些内容,以确保 "input:checkbox[name=share_ids]" 确实选择了一些元素。
    • 我在添加部分添加了这个:str = "添加到数组".concat($(this).val());警报(str);它确实弹出并说“已添加到数组 81”
    • 然后在我添加的重新检查部分: str = "Re-Checking ".concat($(this).val());警报(str);它还会弹出并显示“重新检查81”。但仍然没有检查发生。
    【解决方案2】:

    尝试改变

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

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

    【讨论】:

    • 是的,我想你也必须这样做。
    • 没关系。 Html 不检查为已检查设置的属性
    【解决方案3】:

    我假设你的逻辑是正确的。但我看到 attr 的行为很奇怪。

    尝试改用 $(this).data('checked','checked')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-05
      • 2019-08-02
      • 2019-04-11
      • 2014-04-26
      • 2013-02-02
      相关资源
      最近更新 更多