Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you store the value of a checked radio button in local storage using pure Javascript?

I'd like to store my checked radio button in local storage so that on a page reload it will have the last checked item check on the reload.

Html:

<h3>Seconds Display:</h3>
<p id="secondsHidingText">Hiding seconds extends battery life</p>
&nbsp&nbsp<input type="radio" name="seconds" value="show" checked="checked">Show&nbsp&nbsp
<input type="radio" name="seconds" value="hide">Hide

This is the javascript I have:

localStorage.setItem('seconds', options.seconds);

(which runs when the save button I have is clicked)

And

document.getElementById('seconds').value = localStorage.getItem("seconds");

(which runs on document being loaded)

I get the following error: Uncaught TypeError: Cannot set property 'value' of null

How do I store and retrieve the checked radio button to and from local storage? And if possible I'm looking for a pure JS way of accomplishing this.

Thanks!

like image 911
Barry Michael Doyle Avatar asked Dec 20 '22 05:12

Barry Michael Doyle


1 Answers

You would have to iterate through the radio buttons and then set the value. Something like this

var radios = document.getElementsByName("seconds"); // list of radio buttons
var val = localStorage.getItem('seconds'); // local storage value
for(var i=0;i<radios.length;i++){
  if(radios[i].value == val){
      radios[i].checked = true; // marking the required radio as checked
  }
}

I used jquery only to set the localstorage value in a convenient way.

Here is a demo

like image 139
rahul bose Avatar answered Jan 23 '23 04:01

rahul bose