Problèmes fonction javascript

leto23 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   -  
leto23 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai crée une fonction qui a pour rôle d'afficher un compte à rebours de temps. On entre un temps en jours, heures, minutes et secondes et cela affiche le compteur dans un INPUT de formulaire.

Seulement il a quelques petits soucis !
La fonction en elle-même marche superbe, sauf quand on rentre la valeur "0, 0, 0, 0", il ne se passe rien (aucun affichage !).

De plus j'aimerais qu'il y ait toujours un affichage minimal de 2 chiffres (par exemple écrire 02 au lieu de simplement 2). J'ai fait une condition pour les secondes, celle-ci marche, sauf que si je la copie-colle pour les minutes, heures ou jours, alors sa ne marche plus (bug d'affichage, avec les '0' qui se cumulent !)

Et dernièrement j'aimerais pouvoir afficher mon résultat ailleurs que dans un formulaire (pour enlever le cadre autour d'affichage !). Par exemple, dans un DIV (je débute en javascript, je ne sait pas comment faire :()

Voila mon code :
var j;
var h;
var m;
var s;

function compteur(s, m, h, j) // compte a rebourd dynamique
{
	if (s != 0 && m >= 0)
	{
		sec = s - 1;
		min = m;
		heur = h;
		jour = j;
	}
	else if (s == 0)
	{
		sec = 59;
		heur = h;
		jour = j;
		if ( min > 0)
		{
			min = m - 1;
		}
		else if (min == 0 && heur >= 0)
		{
			min = 59;
			if ( heur > 0)
			{
				heur = h - 1;
			}
			else if ( heur == 0 && jour >= 0)
			{
				heur = 23;
				if( jour > 0)
				{
					jour = j -1;
				}
			}
		}	
	}
	
	if(sec < 10) // permet de tjs avoir un nombre composé de 2 chiffres
	{
		sec = "0"+sec;
	}

	if (jour == 0 && heur == 0 && min == 0 && sec == 0)
	{
	res = "fini";
	document.horloge.display2.value=res;		
	}
	else
	{
	res = jour+":"+heur+":"+min+":"+sec;
	document.horloge.display2.value=res;
	setTimeout("compteur(sec, min, heur, jour)",1000);
	}	
}


<FORM name="horloge">
<INPUT TYPE="text" NAME="display" SIZE=100 VALUE =""><br>
<INPUT TYPE="text" NAME="display2" SIZE=100 VALUE =""><br>
<INPUT TYPE="text" NAME="display3" SIZE=100 VALUE ="">
</FORM>



Merci a ceux qui pourront m'aider !
A voir également:

2 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
pour répondre à ta dernière question:

pour écrire dans un div

//tu mets dans ta page ou tu le veux:

<div id="resultat"></div>



et dans ta fct js au lieu de:
document.horloge.display2.value=res;

tu mets

document.getElementById('resultat').innerHTMLe=res;
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
excuses petite erreur de frappe dans ma réponse, il faut lire:

document.getElementById('resultat').innerHTML=res;
0
leto23 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   6
 
merci pour ton aide !
0