checkbox persistency

November 8, 2016 274 views
Applications

I am trying to persist checkbox (when it is clicked, it will show as clicked, vice versa). This is the code i found online but doesn't work. Can you tell what is wrong with it? Or is there better code?

var checkboxValues = JSON.parse(localStorage.getItem('checkboxValues')) || {},
      $checkboxes = $("input :checkbox");

  $checkboxes.on("change", function(){
    $checkboxes.each(function(){
      checkboxValues[this.id] = this.checked;
    });

    localStorage.setItem("checkboxValues", JSON.stringify(checkboxValues));
  });

  // On page load
  $.each(checkboxValues, function(key, value) {
    $("#" + key).prop('checked', value);
  });

Also you happen to know any Jquery community i can ask question to?
thx

1 Answer

The true code is as below -

var checkboxValues = JSON.parse(localStorage.getItem('checkboxValues')) || {};
var $checkboxes = $("#checkbox-container :checkbox");

$checkboxes.on("change", function(){
  $checkboxes.each(function(){
    checkboxValues[this.id] = this.checked;
  });
  localStorage.setItem("checkboxValues", JSON.stringify(checkboxValues));
});

You have missed var in the second line. Hope this helps you.

  • Still doesn't work. Do i need to refer 'checkboxValues' anywhwere in html?
    Does #checkbox-container need to show in Jquery-1.11.2.js? that is the only Jquery file i have.

Have another answer? Share your knowledge.