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 :

Menu d'un file input sur un formulaire


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Par défaut Menu d'un file input sur un formulaire
    Bonjour,

    Je vais presenter le probleme:

    quand vous avez un formulaire et que ce formulaire vous demande de choisir un fichier, vous avez un bouton sur lequel vous pouvez cliquer pour choisir le fichier (input type: file).
    Si vous cliquez sur le bouton, une boite de dialogue s'affiche et vous demande de choisir un fichier.




    Ma question est simple:
    Comment puis je m'assurer que le boite de dialogue est affichée ?
    Existe t il une fonction qui permet de le verifier ?

    Par ailleurs, quand vous allez dans un repertoire qui contient des beaucoup de fichiers, la boite de dialogue met parfois du temps à afficher les fichiers.
    Existe t il une fonction qui caracterise l'etat de la boite de dialogue (occupé, pas occupé) ?

    Petite precision: je programme sur des fonctions javascript, mais je ne le fais pas pour faire une page web, mais pour executer des commandes dans une page web chargée par un programme.
    En d'autres termes: je ne peux pas faire autrement que ce que je demande pour contourner la difficulté et bien sur, je ne peux pas me contenter de la seule observation visuelle.

    Merci de votre/vos reponses.

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    sur le onmousedown de l'input file tu peux modifier un flag ...

    pour l'etat de la boite de dialogue, je ne pense pas que tu puisse avoir un quelque retour que ce soit

    dis nous plutot quel est le souci que peut engendrer l'affichage ou non de la boite de dialogue...
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Par défaut
    en fait à la base je veux programmer un truc en delphi, et le truc en delphi passe des commandes de deux manières:

    - par une automation du webbrowser (du document.getElementById() qu'on trouve aussi en javascript je crois)
    - par des commandes javascript.

    Comme je fais pas une page web, mais une appli avec une page web dedans, je peux passer des commandes par mon application.
    Par exemple je peux simuler des entrées clavier, or depuis une mise à jour de securité de internet explorer 8, si le INPUT est "file" je ne peux plus me contenter de paster du texte dedans (c'est embetant quand vous devez entrer plusieurs fois le meme chemin dans des boites de dialogues, ca fait perdre du temps et ca m'oblige à chercher la ou avant je pastais).

    Bon, dans mon appli je fais des keystrokes, pour faire apparaitre le boite de dialogue, je dois attendre que la boite de dialogue apparaisse et que son état est stabilisé, une fois que c'est fait, je dois balancer un paste dans la boite de dialogue et un ENTER, pour fermer la boite puis eventuellement un "ESCAPE".
    Il y a une commande delphi qui permet d'attendre qu'on a traité tout les messages demandé au programme, mais elle est inoperante si une boite de dialogue qui demande un fichier est active (les messages ne sont jamais traité et mon prgramme bloque jusqu'a ce que je rentre un fichier)

    J'ai contourner la diffuculté et résolu mon probleme par une bidouille mais techniquement je trouve que ma manière de faire est crade (en fait je prends le paris que la boite de dialogue est ouverte est active, ce qui est pour le moins hasardeux).

    C'est pourquoi je cherche une methode un peu plus propre, donc je me demandais s'il n'y avait pas un moyen de connaitre l'etat des boites de dialogues ou l'etat du navigateur (apres tout il y a des events du browser qui apparaisse quand on a une boite de telechargement)

    Donc si vous avez un moyen de controler ces events, par du javascript ou pas (je pense qu'il faut que je passe par un controle du navigateur et non pas une fonction en delphi), je suis preneur.

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    tu peux detecter son ouverture sur le onmousedown ou onclick masi àprès poru en detecter la fermeture ...
    peut etre en passant par le onblur ça laisse une incertitude car le focus peut rester sur l'input sans que la boite de dialogue soit ouverte
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Par défaut
    mouai je ne peux pas cliquer sur resolu.

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Peut-être onblur + value différent de defaultValue ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Beef comme sus dit le onblur laisse un temps de latence possible entre le moment ou le fichier a ete choisi et celui ou l'on quitte le champs...

    J'ai bien peur qu'en js tu ne puisses dectecter la periode d'affichage de la boite de dialogue...

    une solution serait de passer par un truc en flash du genre de nasuploader, à mon avis tu auras plus de chance de pouvoire detecter les choses de ce coté là ...
    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 !

Discussions similaires

  1. Requête sur un formulaire avec menu deroulant
    Par Begsweb dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/08/2011, 06h19
  2. Clic droit sur un formulaire et menu contextuel
    Par Lnmex dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/12/2009, 07h44
  3. Menu contextuel empêcher clic droit sur Input
    Par lodan dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 14/06/2007, 18h25
  4. [AJAX] Pb inputs dans un formulaire + fichiers docs/tutos sur Ajax!
    Par cassy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/09/2006, 11h19
  5. Réponses: 6
    Dernier message: 14/06/2006, 16h02

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