Compte a rebours Jquery se réinitialise après actualisation de la page

Fermé
Grace3616 - Modifié le 7 mars 2020 à 18:33
 Grace3616 - 7 mars 2020 à 18:30
Bonjour à tous,

J'ai copié ci-dessous le code d'un compte à rebours qui commencera après que l'utilisateur ai cliqué sur un bouton (page web liée à un test de langue), cela fonctionne mais il y a deux autres choses qui ne vont pas et je ne peux pas en identifier les causes:

1- Après avoir démarré le compte à rebours en cliquant sur le bouton Démarrer, si je mets à jour la page, le compte à rebours est désactivé, donc si l'utilisateur se met à jour il peut répéter le test à sa guise ... ça ne devrait pas être possible

2- toujours après avoir cliqué sur le bouton de démarrage, tous les champs indiquent qu'ils doivent être renseignés (validés) alors que cette fonction n'est déclenchée, normalement, que lorsque l'utilisateur soumet le test et qu'il manque un champ qu'il n'a pas vérifié.

 

Pouvez vous m'aider ? merci



$(document).ready(function (){
 

jQuery(function($){
   $('#startClock').on('click', doCount);
});

function checkform()
{
if (!document.form1.q7[0].checked &&
!document.form1.q7[1].checked) {
alert('Toutes les réponses doivent être renseignées');
return false;
}
};
function afficherchamp() {
document.getElementById("q13").style.display="block";
document.getElementById("q14").style.display="block";
document.getElementById("q15").style.display="block";
document.getElementById("q17").style.display="block";
document.getElementById("q19").style.display="block";
document.getElementById("q21").style.display="block";
document.getElementById("q25").style.display="block";
document.getElementById("q27").style.display="block";
document.getElementById("q29").style.display="block";
document.getElementById("q31").style.display="block";
document.getElementById("q33").style.display="block";
document.getElementById("q35").style.display="block";
document.getElementById("q37").style.display="block";
document.getElementById("q39").style.display="block";
document.getElementById("q41").style.display="block";
document.getElementById("q43").style.display="block";
document.getElementById("q45").style.display="block";
document.getElementById("q47").style.display="block";
document.getElementById("q50").style.display="block";
document.getElementById("q59").style.display="block";
document.getElementById("q61").style.display="block";
document.getElementById("q63").style.display="block";
document.getElementById("q65").style.display="block";
document.getElementById("q67").style.display="block";
document.getElementById("q69").style.display="block";
document.getElementById("q71").style.display="block";
document.getElementById("q73").style.display="block";
document.getElementById("q75").style.display="block";
document.getElementById("q77").style.display="block";
document.getElementById("q79").style.display="block";
document.getElementById("q81").style.display="block";
document.getElementById("q83").style.display="block";
document.getElementById("q85").style.display="block";
document.getElementById("q88").style.display="block";
}

function doCount(){
var xMinutes = 15;
var xSeconds = 59;
document.getElementById("count").innerHTML = "Top: " + xMinutes + ":" + xSeconds;
var timer = setInterval(function() {
$("#YourButton").prop('disabled',true);
xSeconds--;

if (xSeconds < 10) {
document.getElementById("count").innerHTML = "Il vous reste: " + xMinutes + ":0" + xSeconds;
}
else {
document.getElementById("count").innerHTML = "Il vous reste: " + xMinutes + ":" + xSeconds;
}
if (xMinutes == 0 && xSeconds == 0) {
$("#YourButton").prop('disabled',true);
clearInterval(timer);
alert("Temps écoulé! Votre test sera soumis automatiquement");
}
if (xSeconds == 0) {
xMinutes--;
xSeconds = 59;
}
}
, 1000)
 
var auto_refresh = setInterval(function() {
submitform();}, 2100000);
// Form submit function
function submitform() {
{
alert('Soumission automatique du formulaire...');
document.getElementById("form1").submit();
}
}

};
A voir également:

2 réponses

jordane45 Messages postés 38169 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 8 mai 2024 4 660
7 mars 2020 à 18:17
Bien sûr que ça se remet à zéro lorsque l'utilisateur recharge la page...
pour éviter cela il faudrait que tu mémorises soit via le local storage soit via des cookies là où il en est dans le compte à rebours.
Puis que tu utilises ces variables lorsque la page est rechargée.


Nb: à l'avenir merci d'utiliser les balises de code pour poster ton code sur le forum

https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

.
0
Merci pour votre réponse, je débute vraiment en javascript et je ne sais pas comment le faire... j'ai trouver de la ressource sur le net mais je n'ai pas su comment l'adapter a mon code, avez vous une idée ? merci
0