Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

sin2san's avatar

Clear SessionStorage or localStorage after form submit not working

I am using laravel 5.5 created a quiz form where user can enter his answer and submit. user will have max duration when it reaches 0 the form will automatically submit. I used sessionStorage to store the timer so that the timer won't reset on page refresh, but the problem is sessionStorage is not clearing after the form submit.

<span id="divCounter" class="label label-success timer">00 Hrs : 00 Mins : 00 Secs</span>
<script type="text/javascript">
 //Set Time To Session Storage
   if (sessionStorage.getItem("timerStorage<?php echo $singleData->id; ?><?php echo Auth::id(); ?>")) {
    if (sessionStorage.getItem("timerStorage<?php echo $singleData->id; ?><?php echo Auth::id(); ?>") == 0) {
   var timer = <?php echo $singleData->duration; ?>;
  } else {
   var timer = sessionStorage.getItem("timerStorage<?php echo $singleData->id; ?><?php echo Auth::id(); ?>");
  }
  }else{
  var timer = <?php echo $singleData->duration; ?>;
  }
  setInterval(
   function() {
      if(timer == 0) {
        sessionStorage.setItem("timerStorage<?php echo $singleData->id; ?><?php echo Auth::id(); ?>", 
  <?php echo $singleData->duration; ?>);
      document.quizSubmit.submit();     
    } else {
      timer--;
      timeConvert(timer);
      sessionStorage.setItem("timerStorage<?php echo $singleData->id; ?><?php echo Auth::id(); ?>", timer);
    }
 }, 1000);
  function timeConvert(timer) {
  var oldtime = timer;
  var hours = Math.floor(timer / 3600);
  var minutes = Math.floor(timer % 3600 / 60);
  var seconds = timer % 3600 % 60;
  if (hours   < 10) {hours   = "0"+hours;}
  if (minutes < 10) {minutes = "0"+minutes;}
  if (seconds < 10) {seconds = "0"+seconds;}
  document.getElementById('divCounter').innerHTML = hours + ' Hrs : ' + minutes + ' Mins : ' + seconds + ' 
  Secs';
  document.getElementById("myInput").value = timer;
  }

  //Clear Storage Session On Form Submit
 $('#quizSubmitClear').submit(function(e){
  e.preventDefault();
   sessionStorage.clear(); 
 });
 </script>
0 likes
0 replies

Please or to participate in this conversation.