IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

la validation d'un formulaire


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut la validation d'un formulaire
    Bonjour,
    J'explique en 2 mots ce que je cherche à faire.

    j'ai une page avec un timer, lorsque le timer arrive à zero, j'affiche en javascript un bouton de formulaire suivant.
    Lorsque l'on clique dessus, ca ouvre une nouvelle page, et ca relance le compteur.

    j'ai un soucis par rapport au bouton qui s'affiche aprés le compteur, celui ci ne fonctionne pas.

    Alors que le formulaire lorsqu'il est sur la page dés le début fonctionne trés bien.

    Voici le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
    <title>Untitled Document</title>
    <script language="javascript">
    x=5;
    y=0;
     
    function modif(id, text) {
    	if (document.getElementById)
    	{
    		res = document.getElementById(id) ;
    	}
    	else if (document.all)
    	{	
    	res = document.all[id]; 
    	}
    	else if (document.layers)
    	{
    		res = document.layers[id];
    	}
    	res.innerHTML = "<b>"+text+"</b>";
    }
     
    function timer() {
    x--;
     
    if(x == 0) 
    { 
    	var show='<form id="form1" name="form1" method="post" action="autosurf_site.php" target="_blank">'; 
    	show = show+'<input type="submit" name="button" id="button" value="Site suivant" onclick="recharge();" />';
        show = show+'</form>';
    	modif('info','Veuillez cliquer sur le bouton suivant'); 
    }
    else
    {
    	var show=x;
     
    	setTimeout('timer()', 1000);
    }
    modif('timer', show);
    }
     
    function recharge()
    {
     
    	if (y >= 2)
    	{
    		window.location.reload()
    	}
    	else
    	{
    		y++;
    		x=5;
    		timer();
    	}
    }
     
    </script>
    </head>
     
    <body>
    <div align="center" id='info'><strong>Veuillez patienter</strong></div></font>
    <div style="text-align:center; font-family: Tahoma, sans-serif; font-size: 2em;" id="timer"><strong>Chargement...</strong></div>
    <script>
    			timer();
    		</script>
    <form id="form1" name="form1" method="post" action="autosurf_site.php" target="_blank">
    <input type="submit" name="button" id="button" value="Site suivant" onclick="recharge();" />
    </form>
    </body>
    </html>

    Est ce que vous auriez une idée d'ou cela peut provenir?

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Je dirais que tout va bien malgré que vous utilisiez innerHTML au lieu de createElement. Vous avez ici cette petite condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	if (y >= 2)
    	{
    		window.location.reload()
    	}
    	else
    	{
    		y++;
    		x=5;
    		timer();
    	}
    qui est fort bien respectée. Donc il n'y aura aucun rechargement tant que vous n'aurez pas relancez deux fois le timer.

    Ha oui, j'ai aussi fait mes tests sans le formulaire d'exemple qui est là dès le chargement de la page. Sinon, vous essayez d'ajouter un nouveau formulaire avec un name et un id déjà existants.

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    Qu'entendez vous par tout va bien? Le script fonctionne chez vous?

    Car chez moi, le compteur repart à zero, mais la nouvelle page ne s'ouvre pas.

  4. #4
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    J'ai voulu dire que ce qui est codé fonctionne très bien. Vous avez codé un "if" qui dit que vous devez relancer deux fois le compteur avant de changer de page :


    1) y vaut 0. Le premier décompte se fait et le bouton apparait. Vous cliquez. Ca relance le compteur.
    2) y vaut 1. Le second décompte se fait et le bouton apparait. Vous cliquez. Ca relance le compteur.
    3) y vaut 2. Le troisième décompte se fait et le bouton apparait. Vous cliquez. Ca ouvre une nouvelle page.

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    Oui oui cela est voulu.

    Mais mon soucis, c'est lorsque l'on clique sur le bouton site suivant affiché par le script javascript, la nouvelle page (du formulaire) ne s'ouvre pas. le compteur est seulement remis à 0 (ou bien la page est rechargé)

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Désolé, je ne comprends pas ce que vous désirez. Après combien de fois voulez-vous que la page suivante apparaisse ?

  7. #7
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    Le fait de recharger toutes les 2 fois était facultatif :

    Voici le code basic :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
    <title>Untitled Document</title>
    <script language="javascript">
    x=5;
    y=0;
     
    function modif(id, text) {
    	if (document.getElementById)
    	{
    		res = document.getElementById(id) ;
    	}
    	else if (document.all)
    	{	
    	res = document.all[id]; 
    	}
    	else if (document.layers)
    	{
    		res = document.layers[id];
    	}
    	res.innerHTML = "<b>"+text+"</b>";
    }
     
    function timer() {
    x--;
     
    if(x == 0) 
    { 
    	var show='<form id="form1" name="form1" method="post" action="autosurf_site.php" target="_blank">'; 
    	show = show+'<input type="submit" name="button" id="button" value="Site suivant" onclick="recharge();" />';
        show = show+'</form>';
    	modif('info','Veuillez cliquer sur le bouton suivant'); 
    }
    else
    {
    	var show=x;
     
    	setTimeout('timer()', 1000);
    }
    modif('timer', show);
    }
     
    function recharge()
    {
    		window.location.reload()
    }
     
    </script>
    </head>
     
    <body>
    <div align="center" id='info'><strong>Veuillez patienter</strong></div></font>
    <div style="text-align:center; font-family: Tahoma, sans-serif; font-size: 2em;" id="timer"><strong>Chargement...</strong></div>
    <script>
    			timer();
    		</script>
    </body>
    </html>
    Celui ci est sensé, après le décompte du timer, afficher un formulaire avec un bouton.
    Jusque la ca fonctionne.
    Ensuite lorsque l'on clique sur le bouton, une autre fenetre doit s'ouvrir(la page validant le formulaire) et en même temps, le compteur se remet à zéro.
    Et la ca coince, la page ne s'ouvre pas, il y a seulement le compte qui se remet à zéro.

  8. #8
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bah oui. Ce code fonctionne parfaitement.

    Vérifiez les paramètres de votre navigateur à propos de l'ouverture automatique de fenêtre.

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/04/2006, 09h42
  2. Javascript : Empecher la validation d'un formulaire
    Par otb82 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/01/2006, 09h46
  3. Ouvrir une popup lors de la validation d'un formulaire
    Par pod1978 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/11/2005, 15h47
  4. Vérification de validation d'un formulaire
    Par tom06440 dans le forum Langage
    Réponses: 8
    Dernier message: 21/09/2005, 14h29
  5. Réponses: 11
    Dernier message: 16/09/2004, 11h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo