|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : août 2002 Messages : 130 ![]() |
Bonjour,
j'ai un formulaire dans lequel se trouve une liste déroulante permettant de sélectionner un mois et une année. Dans cette même page se trouve un autre formulaire avec 2 champs input 'date'. Ces champs peuvent être alimentés via un popup calendrier activé à l'aide de fonction javascript. Ce popup calendrier est un xmlservice à part entière que j'ai développé. Ce calendrier se positionne à une date en fonction du champ ' mois - année ' selectionné dans le premier formulaire. Mon pb est qu'un utilisateur peut sélectionner un champ 'mois - année ', activer le formulaire et activer dans la foulée le calendrier avant d'avoir reçu la réponse du premier formulaire, ce qui fait qu'il n'y a plus correlation entre les 2. En résumé, comment interdire de cliquer sur un lien tant que la page n'est pas totalement affichée ? |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : janvier 2003 Messages : 85 ![]() |
Je pense que tu peux mettre un champ caché dans ton formulaire "calendar_enabled" :
Code :
<input type="hidden" name="calendar_enabled" value="0">
Ca demande des connaissances en JavaScript. Rien de plus...
__________________
Julien C. |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : août 2002 Messages : 130 ![]() |
merci j'essaie de suite. Tu avais répondu aussi à mon post précédent (sur la mise en cache) . J'ai répondu à la question que tu m'avais posé (cad delphi). Sous entend tu qu'il faut coder en script et non en Delphi pour que cela fonctionne ?
|
|
|
00
|
|
|
#4 | ||||
|
Nouveau Membre du Club
![]() Inscription : août 2002 Messages : 130 ![]() |
j'ai mis en application ton idée et j'ai un petit soucis. voici le code généré
La fonction javascript qui appelle le calendrier si le flag est positionné à 1 Code :
Code :
<body background="/SharedPortal/Skins/msnblue/background.gif" onload="document.SelectMois.calendar_enabled.value = 1;"><!--XMLC_INSERT_COMMENTS--> Code :
Code :
<input name="calendar_enabled" type="hidden" value="0">
|
||||
|
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() Inscription : janvier 2003 Messages : 85 ![]() |
A quel moment veux tu que le champ "calendar_enabled" soit initialisé à 1 ? Une fois que ta page soit loadée ? Dans ce cas, tu peux faire ca :
Code :
Tiens moi au courant.. A+
__________________
Julien C. |
||
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : août 2002 Messages : 130 ![]() |
...ça marche pas...J'ai l'initialisation du champ caché tout en bas, j'ai même essayé après la balise html . IL s'initialise trop vite . Par contre si j'enlève l'initialisation à 1, j'ai bien mon alerte qui est activée ce qui démontre bien que l'initialisation fonctionne . Question : à la soumission du formulaire est ce que l'initialisation à zero fonctionne ?
|
|
|
00
|
|
|
#7 | |
|
Membre régulier
![]() Inscription : janvier 2003 Messages : 85 ![]() |
Ah attends... J'viens de relire ton tout 1er post.. Tu dis, que tu as un premier formulaire, qui contient la date de base pour ton calendrier qui fait partie, lui, du 2nd formulaire... Et t'as dis :
Citation:
__________________
Julien C. |
|
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : août 2002 Messages : 130 ![]() |
il y a 3 formulaire à la suite comme cela
<form name = selectGRP action = même page> <form name = SelectMois action = même page> <form name = MainForm action = autre page <input type="text" name="DATEDEB" value="" size="10"><a onclick="OpenCal('MainForm.DATEDEB');" </form> Voici un rapide résumé de la cinématique. Le premier formulaire dont je parlais dans le premier message est SelectMois. Le troisiéme formulaire contient 2 champs date qui sont alimentés via un popup calendrier , mais les données de ce popup dépendent d'un champ select du formulaire SelectMois. Le problème est que l'on peut activer le popup après avoir soumis le formulaire SelectMois sans attendre que celui çi est renvoyé sa réponse. j'ai refait des tests en activant une alerte javascript dans l'évènement onLoad du body et en effet la fenêtre ne s'affiche que lorsque la page est totalement chargée. Par contre si j'initialise mon flag calendar_enabled au même endroit , ça ne me donne pas le résultat escompté et tout se passe comme si l'initialisation se faisait avant que le chargement soit effectif pour l'utilisateur ???? |
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() Inscription : janvier 2003 Messages : 85 ![]() |
Tu dis que l'on submit le formulaire SelectMois en 1er. On attend la réponse, et ensuite une fois que t'as obtenu la réponse, tu veux active le calendrier ? En fait quand tu post ton formulaire SelectMois, tu reload la page ? Si c'est ca, quand tu valides ton formulaires SelectMois, tu changes la valeur de ton champ caché "calendar_enabled" à "0". comme ca, s'il tente de cliquer avant d'avoir recu la réponse, ton action verra que le champ est à 0 et ne déclenchera pas l'action..
__________________
Julien C. |
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Inscription : août 2002 Messages : 130 ![]() |
ça y est ça marche ! En fait il faut forcer la réinitialisation du champ hidden 'enabled_calendar' à zero avnt la soumission du formulaire selectmois. Je pensais que l'initialisation par l'attribut value du champ hidden suffisait mais apparement si le champ contient déjà une valeur l'initialisation ne se fait pas . Par conséquent il faut forcer cette valeur par du code javascript...bizarre....
En tout cas merci pour ton aide |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com