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 :

validation formulaire dans autre fenêtre


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut validation formulaire dans autre fenêtre
    Bonjour,

    Je voudrais savoir s'il est possible de remplir un formulaire et de la valider alors que celui est dans une autre fenêtre.
    Par avance merci.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    possible, si l'autre fenêtre a été ouverte via JavaScript par la première.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // dans fenêtre principale
    pop_form = window.open("le_form.html", "pop");  // Ouvre la fenêtre du form
    ...
    pop_form.document.forms["name_du_form"].submit();  // Envoi le form
    Le problème va plutôt être la gestion des évènements entre les 2 fenêtres ...

    A+

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    Merci,

    Est-il possible de faire de la même façon un clic sur un lien ? (en fait le formulaire que je veux validé est validé par un lien qui exécute une fonction javascript...)

    Par avance merci

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par pazgal Voir le message
    Est-il possible de faire de la même façon un clic sur un lien ? (en fait le formulaire que je veux validé est validé par un lien qui exécute une fonction javascript...)

    Ben il suffit d'utiliser la dernière ligne donnée dans ta fonction JavaScript.
    Pense à terminer le onclick par un afin d'éviter l'appel au href (ce qui rechargerait la page).

    A+

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    J'ai fais des essais mais cela ne fonctionne pas. Voilà le lien que je voudrais cliquer (via mon javascript qui est dans une autre fenêtre) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a onclick="WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$LF$LB&quot;, &quot;&quot;, false, &quot;&quot;, &quot;https://www.monsite.com/Secure/LoginPage.aspx?destination=sports&quot;, false, true));if (typeof(Page_ClientValidate) == 'function') { if (Page_ClientValidate() == false) { return false; }} this.disabled = true;if (document.getElementById('loginButtonContainer')){document.getElementById('loginButtonContainer').className = 'disabled';}return false;" id="ctl00_LF_LB" tabindex="3" UseSubmitBehavior="true" href="javascript:__doPostBack('ctl00$LF$LB','')">Login</a>
    Que dois-je écrire ? Visiblement il fait deux choses en même temps. Comment faire pour executer une fonction présente dans une autre fenêtre ?

    Merci beaucoup !

  6. #6
    Expert éminent sénior

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

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

    A mon avis il faut revoir les quottes et les guillemets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ="WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00
    Là vous venez de fermer votre chaine de caractères.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    Ce n'est pas une de mes pages. Ce que je veux c'est juste faire comme si j'avais pris ma souris et cliqué dessus.

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par pazgal Voir le message
    Ce n'est pas une de mes pages.
    Peu importe

    Comme le fait remarquer Vermine, la syntaxe est fausse ce code ne s'exécutera jamais, qu'il soit à toi ou non ...

    A+

  9. #9
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    Certes... mais comme tu le dis, peu importe ! je veux faire comme si je cliquait sur ce lien, il se passe bien quelque chose quand je clique dessus... (login)

    Est-il possible d'executer la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    href="javascript:__doPostBack('ctl00$LF$LB','')"
    depuis une autre fenêtre ?

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par pazgal Voir le message
    Est-il possible de faire de la même façon un clic sur un lien ?
    Par contre j'avais mal lu ça

    Il faut que tu récupères le code du onclick du lien et que tu en fasses une fonction que tu appelleras à partir de l'autre page avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pop_form.ta_fonction();
    A+

  11. #11
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    La syntaxe était correcte mais l'afficheur du forum transforme les &quot; ...

    J'ai rajouté des espaces.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a onclick="WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(& quot;ctl00$LF$LB& quot;, & quot;& quot;, false, & quot;& quot;, & quot;https://www.pinnaclesports.com/Secure/LoginPage.aspx?destination=sports& quot;, false, true));if (typeof(Page_ClientValidate) == 'function') { if (Page_ClientValidate() == false) { return false; }} this.disabled = true;if (document.getElementById('loginButtonContainer')){document.getElementById('loginButtonContainer').className = 'disabled';}return false;" id="ctl00_LF_LB" tabindex="3" UseSubmitBehavior="true" href="javascript:__doPostBack('ctl00$LF$LB','')">Login</a>

  12. #12
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Idem, donc.

    Sauf que c'est le code du href (pas terrible ) qu'il faut récupérer (sans le "Javascript:") au lieu de celui du onclick.

    A+

  13. #13
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Idem, donc.

    Sauf que c'est le code du href (pas terrible ) qu'il faut récupérer (sans le "Javascript:") au lieu de celui du onclick.

    A+
    Faux !

    Je corrige : sur le même principe, il faut que tu reprennes le fonctionnement du lien existant dans ton lien à toi pour reproduire le bon enchainement : à la fois le onclick et le href.

    A+

  14. #14
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    Je n'arrive même pas à remplir le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    pop_form = window.open("https://www.pinnaclesports.com/", "pop");  // Ouvre la fenêtre du form
    setTimeout("alert('')",15000); //laisse le temps à la page de se charger
    pop_form.document.forms["aspnetForm"].ctl00$MCPH$LF$UserName.value = 'monlogin';
    alert('1');
    ne marche pas :-( je ne comprends pas pourquoi (le 2ème alert ne se déclenche pas)

  15. #15
    Expert éminent sénior

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Ca ne règlera pas votre problème mais le setTimeout ne bloque pas le script et donc il passe directement à l'instruction suivante.

  16. #16
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    Pourquoi le remplissage du formulaire et pourquoi la validation du formulaire ne se font pas dans ce script, je ne comprend as bien comment m'y prendre...

    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
    pop_form = window.open("https://www.pinnaclesports.com/", "pop");  // Ouvre la fenêtre du form
    setTimeout("f_submit()",15000);
     
    function f_submit()
    {
    alert('0');
    pop_form.document.forms["aspnetForm"].ctl00$MCPH$LF$UserName.value = 'monlogin';
    alert('1');
    pop_form.document.forms["aspnetForm"].ctl00$MCPH$LF$Password.value = 'monpasswd';
     
     
    pop_form.document.forms["aspnetForm"].__EVENTTARGET.value = 'ctl00$LF$LB';
    pop_form.document.forms["aspnetForm"].__EVENTARGUMENT.value = '';
     
     
            pop_form.document.forms["aspnetForm"].submit();
    alert('fini');
    }
    alert('0'); s'affiche mais pas le suivant :-(

  17. #17
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par vermine Voir le message
    Ca ne règlera pas votre problème
    Si, en grande partie : c'est l'affectation du .value qu'il faut faire dans le setTimeout() car c'est elle qui doit être retardée (et effectivement le setTimeout() ne met pas le script "en pause")

    Une autre solution (plus sûre) est de faire, toujours dans la page principale, une fonction qui effectue le remplissage du formulaire de la page fille (celle du form). Pour ne le lancer qu'une fois la page du form chargée, c'est dans le onload du <body> de celle-ci qu'il faudra appeler cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="opener.nom_de_la_fonction();">
    A+

  18. #18
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Arf : pas vu le post précédent !

    Ce n'est plus que le lancement qui pose problème onload du body de la page fille ...

    A+

  19. #19
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    La page fille n'est pas à moi... je ne peux donc pas y toucher.
    Est-ce toujours possible ?

    Merci

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/11/2012, 13h50
  2. Validation formulaire dans Fancybox
    Par ertyu dans le forum jQuery
    Réponses: 0
    Dernier message: 30/07/2011, 13h39
  3. Réponses: 6
    Dernier message: 09/08/2007, 21h41
  4. actualiser page après validation formulai dans autre fenêtre
    Par allowen dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/01/2006, 16h02
  5. Formulaire dans une fenêtre modale
    Par Amnesiak dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/02/2005, 14h25

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