Question

checkbox persistency

Posted November 8, 2016 1.9k 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

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

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.

Submit an Answer