Modal et page appelante

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 984 fois - Téléchargée 26 fois

Contenu du snippet

Ce code permet aprés avoir affiché une fenetre modal, de retourner une valeur saisi afin de l'inserer dans un input texte.

Source / Exemple :


à ecrire dans une page html simple qui ouvre une fenetre Modal
<html>
<script>
  function afficheModal() {
    var test = "";
    test = window.showModalDialog('testModal.html','popup','dialogWidth=400, dialogHeigh=300');
    window.document.forms['testForm'].elements['texte'].value = test;
  }
</script>
<body onload="javascript: afficheModal()">
<form name="testForm">
<p>test de l'affichage du popup modal et de la recuperation de la valeur dans un champ input</p>
  <input type="text" id="texte">
</form>
</body>
</html>

Ensuite dans la page testModal.html qui est notre fenetre modal on ecrit le code suivant pour recuperer la valeur choisi dans un select

<html>
<script>
function retourVal() {
window.returnValue = window.document.forms['testModalForm'].elements['selectTest'].value;
 window.close();
}
</script>
<body>
<form name="testModalForm">
<select name="selectTest">
  <option value="toto">toto</option>
  <option value="titi">titi</option>
</select>
<input type="button" value="valid" onclick="javascript: retourVal();">
</form>
</body>
</html>

bon courage

Conclusion :


s'il ya des bugs envoyé les mois histoire que je modifie ;)

A voir également

Ajouter un commentaire Commentaires
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
Il n'y a pas vraiment de fonction du genre sleep comme en PHP, mais tu peux utiliser les fonction setTimeout("fonction()",1000) ou setInterval("fonction()",1000). La première fonction vas exécuter le code dans le laps de temps donne en 2e paramètre et la deuxième fonction, exécuter la commande à tout les x millisecondes.
Messages postés
492
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
25 avril 2007
5
Ha oui, autant pour moi... Désolé pour steveurcle... (la remarque reste valable puisqu'indépendante de l'auteur).

En effet, le probleme que tu souleve est le VRAI probleme de ma fenetre modale... que la fenetre conserve le focus ne m'interresse que modérément. Il me faut par contre, en effet, une fenetre qui me retourne une valeur, chose que je ne peux pas faire avec l'instruction open (accessoirement, une fenetre modale suspend l'execution du code, fut-ce en HTML... si seulement cela m'etait possible, je ferais un algo du type:
Variant FenetreModale C'EST:
TANT QUE maFenetre.ouverte = VRAI ALORS
ATTEND 1 seconde
FIN TANT QUE
RETOURNE maFenetre.valeurChoisie
FIN FenetreModale
sauf que je sais pas s'il y a une fonction en javascript qui me permet de suspendre le code pendant un laps de temps donné (ici, ligne "ATTEND 1 seconde"))
Messages postés
81
Date d'inscription
jeudi 19 février 2004
Statut
Membre
Dernière intervention
18 avril 2008

AbriBus -> J'ai vu il n'y a pas longtemps ce code tout simple quelque part, à mettre dans la page qui doit être modale :

...

...

...

Quand la fenêtre perd le focus (est "blurrée"...), on lui redonne le focus. Il suffit donc de simplement appeler window.open() pour ouvrir cette fenêtre qui gardera le focus tant qu'elle sera affichée. Par contre, je crois que showModalWindow() ne retourne que quand la fenêtre est fermée, alors que open() retourne tout de suite. Alors, si la fenêtre qui affiche la fenêtre "modale" doit retrouver une valeur de celle-ci, il faudrait plutôt que la fenêtre modale envoie elle-même les données à la fenêtre appelante.

Quand tu a dit "FraGag> Malgrés la qualité de ton src, ...", tu ne te serais pas trompé ? C'est steveurcle l'auteur, moi je ne fais que corriger et donner des solutions alternatives... :)
Messages postés
492
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
25 avril 2007
5
Salut a tous,
j'ai decouvert la commande window.showModalDialog il y a quelque dizaines de minutes et je croyais bien que ca serait l'apotéose car c'est exactement ce que je cherchais a faire...
Mais comme chacun sait, chaque medaille a son revers, voici donc le travers que j'ai decouvert sur cette fonction...:
window.showModalDialog ne fonctionne QUE sur IE4.0 ou +... ce qui n'inclu pas nottament FireFox.
Voila le lien de chez billou qui parle de cette fonction:
http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/showmodaldialog.asp

Quelqu'un aurait-il une alternative a ce probleme ?
FraGag> Malgrés la qualité de ton src, je ne met pas de note car j'ai pas trouvé la solution a mon probleme... mais c'est de bonne qualité.

AbriBus
Messages postés
81
Date d'inscription
jeudi 19 février 2004
Statut
Membre
Dernière intervention
18 avril 2008

Arto_8000 -> Au contraire, c'est bel et bien standard. Si je regarde dans le DTD Strict du HTML 4.01, on voit :
<!ELEMENT P - O (%inline;)* -- paragraph -->
et :
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
ainsi que :
<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
et il n'y a pas un seul form là-dedans (idem pour le HTML 4.0) ! En clair, ça dit qu'on peut mettre des contrôles de formulaires directement dans un paragraphe. Je le savais, parce que j'ai déjà validé des documents avec des sans <form>... C'est pas pour être méchant, hein... De toutes façons, il manque l'attribut « action » aux <form>s.
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (steveurcle)