2014-04-07 41 views
1

我有一個存儲在cookie中的複選框。按鈕,將取消選中所有複選框?

這裏是jQuery代碼:

//JQuery that will set the checkbox in it's current state 
$("#checkAll").on("change", function() { 
    $(':checkbox').not(this).prop('checked', this.checked); 
    }); 

    $(":checkbox").on("change", function(){ 
    var checkboxValues = {}; 
    $(":checkbox").each(function(){ 
     checkboxValues[this.id] = this.checked; 
    }); 
    $.cookie('checkboxValues', checkboxValues, { expires: 7, path: '/' }) 
    }); 

    function repopulateCheckboxes(){ 
    var checkboxValues = $.cookie('checkboxValues'); 
    if(checkboxValues){ 
     Object.keys(checkboxValues).forEach(function(element) { 
     var checked = checkboxValues[element]; 
     $("#" + element).prop('checked', checked); 
     }); 
    } 
    } 

    $.cookie.json = true; 
    repopulateCheckboxes(); 

上面的代碼完美地工作,但是當我嘗試使用一個按鈕來取消他們不取消的。

這裏是我使用的功能:

$("#UncheckAll").click(function(){ 
    $("input[type='checkbox']").prop('checked',false); 
}); 

我該怎麼辦?有人能幫助我嗎?

+0

你知道,如果點擊回調甚至啓用?是否有一些複選框被清除,但不是全部? –

+0

複選框正在清除,但在對頁面進行刷新後,它會重新進行檢查。 – user3230425

+2

然後在頁面加載時清除您的cookie –

回答

0

試試這個

$("#UncheckAll").click(function(){ 
    $('input:checkbox.class').prop('checked',false); 
}); 

或這如果不是有共同的階級

$("#UncheckAll").click(function(){ 
    $(':checkbox').prop('checked',false); 
}); 
1

給所有複選框類如MyClass的。然後使用jQuery。

document.ready功能

$.cookie("checkboxValues", null);//checkboxValues is the name of your cookie 

刪除您的Cookie的jQuery 1.6+

$("#UncheckAll").click(function(){ 
    $('input:checkbox:checked.myclass').prop('checked',false); 
}); 

的jQuery 1.5

$("#UncheckAll").click(function(){ 
    $('input:checkbox:checked.myclass').attr('checked',false); 
}); 
相關問題