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 :

Formulaire dans une fenêtre modale


Sujet :

JavaScript

  1. #1
    Membre habitué
    Avatar de Amnesiak
    Profil pro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 151
    Points
    151
    Par défaut Formulaire dans une fenêtre modale
    Bonsoir

    Je dispose d'une page principale qui ouvre une fenêtre pop-up modale lors de l'appui sur un bouton. La pop-up contient simplement une zone de texte. Pour rendre cette pop-up modale, je la fais traiter l'évènement onBlur.
    Et je constate qu'il est désormais impossible d'entrer des valeurs dans la zone de texte. D'ailleurs quand je clique dans la zone de texte, le curseur disparait, comme si elle perdait automatiquement le focus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <!-- page principale -->
    <html>
    <head></head>
    <body>
    <input type="button" value="ouvrir" onClick="window.open('popup.htm')" />
    </body>
    </html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!-- popup modale -->
    <html>
    <head></head>
    <body onBlur="self.focus()">
    <form>
    <input type="text" name="nom" value="" />
    </form>
    </body>
    </html>
    Qqun a-t-il une idée de ce qui se passe ? Serait-ce la fenêtre qui s'approprie automatiquement le focus pour rester modale ?
    Merci d'avance !

  2. #2
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    J'ai eu le même problème et personne ne m'a répondu donc j'ai abandonné le fait que la popup soit modale

  3. #3
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <body onblur="frm.nom.focus();"> 
    <form name="frm"> 
    <input type="text" name="nom" value="" /> 
    </form>
    peut-être ? @+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 26
    Points : 24
    Points
    24
    Par défaut
    C'est normal dans code tu donnes le focus à ta fenetre elle meme chaque fois quel pert le focus. Quand tu cliques sur un champ texte dans cette fenetre, c'est ce champ qui recupère le focus, la fenetre le perd et donc elle le récupère avec ta fonction onBlur() et le focus est retiré du champ texte donc il n'est plus selectionné donc tu ne peux rien saisir dedans.

    Pour y pallier tu peux utiliser la fonction showModalDialog mais attention ca ne fonctionne qu'avec IE. Pour rendre une fenetre modale dans les autres cas il faut un script un peu plus long. J'ai croisé une fois un script comme ca mais je ne l'ai pas gardé dsl.

  5. #5
    Membre habitué
    Avatar de Amnesiak
    Profil pro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 151
    Points
    151
    Par défaut
    Ok, je vois...

    Je pense bien que, tout comme Oluha, il vaut mieux abandonner cette idée de fenêtres modales. Surtout que pour des raisons de compatibilité je ne souhaite pas utiliser de méthodes propres à IE, ce qui semble, dans l'immédiat du moins, la seule solution.

    Je trouve aussi un peu dommage que la FAQ Javascript, vers laquelle on m'avait renvoyé, ne précise pas les problèmes causés par l'utilisation de la technique du onBlur et si limite à un simple :

    Citation Envoyé par la FAQ Javascript
    Il suffit d'ouvrir une popup "normale" est de mettre ceci : <body onBlur="self.focus()">
    ... ce qui me laisse malheureusement sur ma faim, et je ne suis apparemment pas le seul.

    Si néanmoins quelqu'un découvre une solution à ce problème, ça pourrait, je pense, en intéresser plus d'un.

  6. #6
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    moi en tous cas, car je ne veux pas non plus utiliser showModalDialog vu que ca ne marche que sous IE

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 69
    Points : 61
    Points
    61
    Par défaut
    Salut,

    Pour rendre une pop-up modale je remets le focus dans la pop-up quand il vient sur la page appelante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!-- page principale --> 
    <html> 
    <head>
    <script>
    var pop=null;
    </script>
    </head> 
    <body onFocus="if (pop!=null) pop.focus()"> 
    <input type="button" value="ouvrir" onClick="pop=window.open('popup.htm')" /> 
    </body> 
    </html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!-- popup modale --> 
    <html> 
    <head></head> 
    <body onBlur="self.focus()" onunload="opener.pop=null"> 
    <form> 
    <input type="text" name="nom" value="" /> 
    </form> 
    </body> 
    </html>
    voilà

  8. #8
    Membre habitué
    Avatar de Amnesiak
    Profil pro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 151
    Points
    151
    Par défaut
    Que voilà une astucieuse solution ! Fallait y penser !
    Un grand merci pour cette admirable réponse

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 69
    Points : 61
    Points
    61
    Par défaut
    L'idée n'est pas moi ... je l'ai repompée quelque part.

    Mais je prends quand même une part de ce:

    ...grand merci pour cette admirable réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Forum] Afficher réponse formulaire dans une fenêtre modale
    Par cyrikou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 24/07/2014, 08h57
  2. [AJAX] Formulaire dans une fenêtre modale
    Par hkp314 dans le forum AJAX
    Réponses: 6
    Dernier message: 06/08/2013, 00h20
  3. Poster formulaire saisie dans une fenêtre modale ?
    Par Cedraow dans le forum jQuery
    Réponses: 1
    Dernier message: 05/06/2013, 01h48
  4. Réponses: 4
    Dernier message: 28/11/2012, 13h50
  5. Supprimer la croix dans une fenêtre modale
    Par AnneOlga dans le forum C++Builder
    Réponses: 3
    Dernier message: 15/01/2004, 14h52

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