Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fermeture popup

window.close();

Sujet résolu
    3 mars 2009 à 16:40:52

    Bonjour,

    J'ai actuellement une popup quelconque qui demande un clic sur une seule des différentes zones. Ce clique entraine une fonction de remplissage dans mon formulaire principal (pas en popup lui).
    Et je voudrais qu'après le clic, celà ferme automatiquement la popup après avoir rempli mon formulaire.

    Tout fonctionne sauf la fermeture.
    <script type="text/javascript">
    		function valider(frequence,gravite,total)
    		{
    			if (window.opener)
    			{
    				window.opener.document.forms["formAjoutDanger"].elements["frequence"].value = frequence;
    				window.opener.document.forms["formAjoutDanger"].elements["gravite"].value = gravite;
    				window.opener.document.forms["formAjoutDanger"].elements["totale"].value = total;
    				window.opener.document.forms["formAjoutDanger"].elements["frequence_disabled"].value = frequence;
    				window.opener.document.forms["formAjoutDanger"].elements["gravite_disabled"].value = gravite;
    				window.opener.document.forms["formAjoutDanger"].elements["totale_disabled"].value = total;
    				window.opener.focus();
    				self.close(); 
    			}
    		}
    		window.focus();
    	</script>
    


    Voilà j'espère que vous pouvez m'aider ;)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      3 mars 2009 à 16:51:50

      self? c'est quoi cette variable?
      • Partager sur Facebook
      • Partager sur Twitter
        3 mars 2009 à 17:01:49

        Même avec window.close() ca ne fonctionne pas :s

        PS : Le code au moment du click :
        <div class="case_grilleb"><p><a href="#" onclick="valider('regulier','mineur','B');">B</a></p></div>
        <div class="case_grillec"><p><a href="#" onclick="valider('regulier','significatif','C');">C</a></p></div>
        
        • Partager sur Facebook
        • Partager sur Twitter
          3 mars 2009 à 17:13:54

          nod_, self, c'est la fenêtre actuelle.

          Normalement, ça devrait marcher, je viens de tester.
          Tu es sous FF ou IE ?

          Essaie de mettre un alert("") juste avant le self.close(), voir s'il s'ouvre.
          • Partager sur Facebook
          • Partager sur Twitter
            3 mars 2009 à 17:19:11

            j'ai tenté un petit :
            alert('Chaîne de caractères');

            mais en vain ...
            • Partager sur Facebook
            • Partager sur Twitter
              3 mars 2009 à 17:23:44

              bah un de tes éléments ne doit pas exister...
              mets les dans des if...
              exemple:
              window.opener.document.forms["formAjoutDanger"].elements["frequence"].value = frequence;
              

              devient
              if(window.opener.document.forms["formAjoutDanger"].elements["frequence"].value = frequence){alert('frequence_ok')}
              

              • Partager sur Facebook
              • Partager sur Twitter
                3 mars 2009 à 17:32:12

                Citation : xavierm02

                bah un de tes éléments ne doit pas exister...
                mets les dans des if...
                exemple:

                window.opener.document.forms["formAjoutDanger"].elements["frequence"].value = frequence;
                


                devient

                if(window.opener.document.forms["formAjoutDanger"].elements["frequence"].value = frequence){alert('frequence_ok')}
                




                Devient plutôt :
                if(window.opener.document.forms["formAjoutDanger"].elements["frequence"]) {
                  window.opener.document.forms["formAjoutDanger"].elements["frequence"].value = frequence;
                }
                
                • Partager sur Facebook
                • Partager sur Twitter
                  3 mars 2009 à 17:34:36

                  bof... non...
                  moi je regarde si l'ensemble peut être fait... c'est pas pour le code définitif... c'est juste pour débugger...
                  et arrête de me contredire >_<
                  • Partager sur Facebook
                  • Partager sur Twitter
                    3 mars 2009 à 17:45:22

                    Tu es sûr de pouvoir tester ainsi une affectation ?

                    EDIT :
                    Je viens de vérifier...

                    Quand tu testes une affectation, sa valeur est la valeur à droite du "=".

                    if(i=5) {
                      // Ici, le code s'exécute, car c'est équivalent à if(5) { }
                    }
                    if(i=0) {
                      // Ici, le code ne s'exécute pas, car c'est équivalent à if(0) { }
                    }
                    
                    • Partager sur Facebook
                    • Partager sur Twitter
                      3 mars 2009 à 18:41:51

                      O.o
                      moi j'ai toujours fait comme ça...
                      if(action)
                      pour voir si ça marchait...
                      et si la fonction marche pas, ça renvoi rien ==> NULL ==> false
                      donc c'est vrai que en mettant ça directement dedans, ça risque de pas marcher... mais en tout cas en mettant des fonctions dedans, ça marche
                      • Partager sur Facebook
                      • Partager sur Twitter
                        3 mars 2009 à 18:55:31

                        Fonctions oui, et éléments également je crois.

                        D'où ma rectification qui ne se voulait pas contradictoire. :)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 mars 2009 à 8:10:51

                          L'idée de Golmote ne fonctionne pas non plus ... C'est bizarre !

                          function valider(frequence,gravite,total)
                          		{
                          			if (window.opener)
                          			{
                          				window.opener.document.forms["formAjoutDanger"].elements["frequence"].value = frequence;
                          				window.opener.document.forms["formAjoutDanger"].elements["gravite"].value = gravite;
                          				window.opener.document.forms["formAjoutDanger"].elements["totale"].value = total;
                          				window.opener = self;
                          				self.close();
                          
                          			}
                          		}
                          		window.focus();
                          


                          Voilà c'est corrigé, j'ai enlevé le superflu. (Ce code était celui d'un ancien programmeur que j'ai tenté d'optimiser.)
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Fermeture popup

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown