Problèmes fonction javascript

Fermé
leto23 Messages postés 86 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 24 janvier 2010 - 16 déc. 2008 à 19:36
leto23 Messages postés 86 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 24 janvier 2010 - 17 déc. 2008 à 18:15
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 déc. 2008 à 21:43
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;
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 déc. 2008 à 22:12
excuses petite erreur de frappe dans ma réponse, il faut lire:

document.getElementById('resultat').innerHTML=res;
leto23 Messages postés 86 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 24 janvier 2010 6
17 déc. 2008 à 18:15
merci pour ton aide !
0