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 :

Focus par défaut des alert() , confirm() et prompt()


Sujet :

JavaScript

  1. #1
    NoT
    NoT est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Points : 280
    Points
    280
    Par défaut Focus par défaut des alert() , confirm() et prompt()
    Salut,

    J'utilises actuellement pour une application intranet, les boites de dialogue alert() , confirm() et prompt(), mais celles-ci me posent un léger problème c'est que leur focus est automatiquement placé sur le le bouton de "Ok" de chaque boite, ou de telle manière que lorsque qu'on appuie sur Entrée la boite considère qu'on a validé.

    Or je souhaiterais au contraire que l'utilisateur ne puisse pas valider la boite au moyen de la touche Entrée, mais soit obligé de lever les yeux de son clavier et click sur le bouton ok ( ou annuler )

    Est-ce possible ?

    Je suis bien conscient qu'une solution serait de passer par du DHTML pour afficher mes ptits messages et personnaliser totalement les comportements de ma boite, mais cette solution ne me convient pas dans le sens ou on ne peut pas bloquer totalement la page aussi facilement que peuvent le faire les boites de dialogue Javascript en attente d'une réponse.

    Merci à ceux qui se pencheront sur mon soucis

    ++

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    les alert et confirm sont un peu modales ... et bloquent le code donc tu ne peux pas à la ligne suivant envoyer le focus ailleurs ...
    la meilleure solution srait de faire tes alerts et autre confirm toi même avec des divs et un masque pour les rendre modales ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    NoT
    NoT est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Points : 280
    Points
    280
    Par défaut
    En fait je pensais pas à un code exécuter après l'affichage de ma bite de dialogue, mais plutot au moment de la déclaration de ma boite, en CSS ou autre.

    Comme dit, le DHTML ne me semble pas une solution fiable, dans le sens ou la fenetre ne sera pas modale par défaut, il qu'il faudra jouer avec ses événements pour pouvoir la rendre modale, et ce genre de code dans une application proffessionnelle, j'évite de le faire, je préfère encore ma solution actuelle qui consiste à inverser le bouton Annuler avec le Ok, càd que l'utilisateur doit clicker sur Annuler pour continuer, s'il click sur Ok ça lui réaffiche la même fenêtre, jusqu'à ce qu'il lève le nez du clavier pour clicker sur annuler.

    Le fait qu'ils aient à confirmer via la souris est très important dans le sens ou en fait ce n'est pas seulement un clavier comme entrée, c'est aussi une douchette à codes barres, qui émule la saisie clavier et termine la saisie par entrée, les opérateurs ont l'habitude de scanner avec la douchette tous les articles un par un sans faire gaffe à l'écran et au moment de l'affichage de la boite de dialogue, la douchette va la fermer et l'utilisateur n'aura d'une part rien vu, et l'article qui devait etre douché ne sera forcément pas prit en compte.

    Voila pour les détails

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    pour rendre un élément modal c'est pas trop sorcier ...
    un grand masque qui couvre toute la page et le tour est joué ...
    pour ce qui est de forcer le focus sur les confirm et autres et désactiver la touche enter pour moi c'est mort d'avance ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    NoT
    NoT est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Points : 280
    Points
    280
    Par défaut
    Le grand calque ne me semble pas couvrir tous les besoins, l'utilisateur peut tjrs clicker sur les barres d'options en haut du navigateur, il peut certainement toujours se balader sur les éléments de la page derriere via la touche TAB, et d'autres choses dans le genre que je ne pourrais controler, en gros ca masque effectivement la saisit, mais ça ne fait que ça, sans parler de la mise en oeuvre un peu plus délicate qu'un simple appel à une et unique fonction prompt().
    Ma priorité c'est d'avoir vraiment qqch de modal afin d'éviter toute erreur que je ne pourrais pas controler, après l'intuitivité vient dans un second plan, et je ne souhaites pas perdre l'intégrité de mon appli à l'avantage de celle-ci.

    Merci beaucoups pour tes propositions en tout cas.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    l'utilisateur peut tjrs clicker sur les barres d'options en haut du navigateur, il peut certainement toujours se balader sur les éléments de la page derriere via la touche TAB, et d'autres choses dans le genre que je ne pourrais controler,
    à priori il peut le faire aussi avec un prompt ou un alert ...
    sauf pour le tab
    le plus satisfaisant à mon humble avis est encore ce processus de divs masque ... Tu ne pourras pas arriver à faire mieux


    peut être un showmodaldialog mais je crois que c'est exclu IE ...
    ou une popup avec un truc horrible du genre onblur="this.focus" dans le onload du popup ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    NoT
    NoT est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Points : 280
    Points
    280
    Par défaut
    Justement les boites de dialogue javascript bloquent réellement tout le navigateur, code javascript comprit. Même si pour mon besoin je n'ai pas besoin de tout bloquer en fait, je préfère passer par ces boites de dialogues qui sont beaucoup plus rassurantes que d'écrire un code dhtml afin d'émuler le comportement bloquant natif aux boites javascript, ce qui me semble peu propre pour mon appli.

    Pour le showmodaldialog effectivement mes recherches m'ont conduit à cela, mais vu que c'est pour un intranet et que le responsable informatique souhaite justement qu'on se détache d'IE au profit de FireFox ça ne va pas aller. Il me reste bien la solution 100% FireFox en utilisant du XUL mais là c'est un autre soucis et un autre langage :p

Discussions similaires

  1. Valeur par défaut des paramètres d’une méthode
    Par three minute hero dans le forum BOUML
    Réponses: 6
    Dernier message: 29/06/2008, 23h04
  2. nom par défaut des étiquettes des contrôles
    Par s.rais dans le forum IHM
    Réponses: 3
    Dernier message: 03/12/2007, 23h55
  3. [POO] Valeur par défaut des attributs
    Par Gruik dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2007, 12h32
  4. Réponses: 6
    Dernier message: 07/08/2007, 21h42
  5. Code par défaut des pages ASPX
    Par zooffy dans le forum Visual Studio
    Réponses: 9
    Dernier message: 13/05/2007, 14h40

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