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
5 replies
sin2san's avatar

Yes in javascript. I need to clear the session storage after form submission. But it is not working perfectly. Sometimes it works, Sometimes it doesn't..

Snapey's avatar

Have you checked that it even hits that code when submitting?

sin2san's avatar

Yes it works ! When i refresh the page the timer still remains the same. But while submitting the form i need the timer to reset. It is resetting sometime and not resetting sometime. That's my problem !

Please or to participate in this conversation.