【问题标题】:Select all checkboxes issue(jQuery)选择所有复选框问题(jQuery)
【发布时间】:2011-07-15 19:25:48
【问题描述】:

我有一个小问题,如果我选择一个复选框并按 f5,则复选框的状态将保持(因此将被选中)但如果我使用 jQuery 选择页面上的所有复选框,然后按 f5 所有复选框将空白(因此取消选中,只有精心挑选的复选框将保持在那里状态)。我该如何解决这个问题,这样当我点击刷新时,一切都会保持不变?

代码

jQuery('.sellectall').click(function(){

    $('input:checkbox').attr('checked',true);

});

【问题讨论】:

    标签: javascript jquery forms checkbox


    【解决方案1】:

    我假设您使用的是 jQuery 1.6 或更高版本。

    如果是这样,请使用prop()[docs] 方法而不是attr()[docs] 方法。

    那么您应该得到与用户单击框相同的行为。

    jQuery('.sellectall').click(function(){
    
        $('input:checkbox').prop('checked',true);
    
    });
    

    ...或手动设置checked 属性:

    jQuery('.sellectall').click(function(){
    
        $('input:checkbox').each(function() { this.checked = true; });
    
    });
    

    【讨论】:

    • 啊,开始使用 prop 的好理由
    • 是的,我确实使用 1.6,这可以,但它仅适用于 1.6+ 而不适用于旧版本,所以如果它适用于 1.3+,那就太好了。
    • @user759235:我更新了我的答案以使用.each() 手动设置DOM 元素的属性来提供解决方案。这适用于旧版本。
    • @lolwut:是的,这就是我的回答。已提供替代方案。
    • @user759235:问题是您要设置属性而不是属性。 .prop() 方法确保设置属性而不是属性。否则需要在.each()循环中手动设置每个元素的属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 2012-05-08
    • 2013-01-29
    • 2011-09-19
    • 1970-01-01
    相关资源
    最近更新 更多