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.
Version imprimable
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.
Bonjour,
possible, si l'autre fenêtre a été ouverte via JavaScript par la première.Le problème va plutôt être la gestion des évènements entre les 2 fenêtres ...Code:
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
A+
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
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) :
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 ?Code:<a onclick="WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$LF$LB", "", false, "", "https://www.monsite.com/Secure/LoginPage.aspx?destination=sports", 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>
Merci beaucoup !
Bonjour,
A mon avis il faut revoir les quottes et les guillemets:
Là vous venez de fermer votre chaine de caractères.Code:
1
2 ="WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00
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.
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 fonctiondepuis une autre fenêtre ?Code:href="javascript:__doPostBack('ctl00$LF$LB','')"
La syntaxe était correcte mais l'afficheur du forum transforme les " ...
J'ai rajouté des espaces.
Code:<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>
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+
Je n'arrive même pas à remplir le formulaire :
ne marche pas :-( je ne comprends pas pourquoi (le 2ème alert ne se déclenche pas)Code:
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');
Ca ne règlera pas votre problème mais le setTimeout ne bloque pas le script et donc il passe directement à l'instruction suivante.
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...
alert('0'); s'affiche mais pas le suivant :-(Code:
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'); }
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 fonctionA+Code:<body onload="opener.nom_de_la_fonction();">
Arf : pas vu le post précédent ! :aie:
Ce n'est plus que le lancement qui pose problème :fleche: onload du body de la page fille ...
A+
La page fille n'est pas à moi... je ne peux donc pas y toucher.
Est-ce toujours possible ?
Merci