mardi 28 janvier 2020

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>


via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire