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 :

Tester si un input a le focus sans onFocus


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de Prue
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 101
    Par défaut Tester si un input a le focus sans onFocus
    Bonjour à tous !

    J'ai un input de type text et j'ai besoin de tester s'il a le focus dans un script.
    J'ai essayé ces formules dans une fonction mais aucune ne fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementById('TextboxSicovam').focus == true)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementById('TextboxSicovam').focus)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementById('TextboxSicovam').Focus == true)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementById('TextboxSicovam').Focus)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementById('TextboxSicovam').onFocus == true)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementById('TextboxSicovam').onFocus)
    Le getElementById fonctionne, je l'ai testé.

    Merci d'avance pour votre aide.

  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
    le test gotfocus ne s'applique qu'aux input text ?
    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é
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Par défaut
    Si tu n'arrive pas à tester qui a le focus, la solution la plus évidente c'est d'assigner à un champ hidden l'identifiant du input qui a le focus.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="text" id="text1" onfocus="document.getElementById('focuser').value='text1';" />
    <input type="text" id="text2" onfocus="document.getElementById('focuser').value='text2';" />
    <input type="hidden" id="focuser" value="" />
    Et pour ne pas avoir d'erreur sur d'éventuel test avant que l'un ou l'autre n'ai eu le focus, tu peut le forcer à l'aide de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body ... onload="document.getElementById('text1').focus();">
    Ou alors de faire le test avant d'essayer d'utiliser la valeur du focuser (vide au lancement).

    Nota : Il me semble quand même que tu devrais pouvoir tester le focus...
    Mais c'est peut-être plus pratique encore comme je t'ai dis !!

  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
    il faut en fait assigner une fonction dynamiquement aux objets pour lesquels tu souhaites tester le focus et tu assignes la focntion sur le onfocus de l'objet...
    la fonction vient modifier une variable publique, il ne restera plus qu'a regarder ce que contient la variable publique pour savoir quel objet à le focus ..
    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é Avatar de Prue
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 101
    Par défaut
    Alors la raison pour laquelle je ne peux pas utiliser de onFocus (ce qui me faciliterait bien les choses) c'est que mon input est enfait un contrôle DTC ASP. Je ne peux pas changer son code.
    A l'arrivée c'est bien un INPUT et je peux le manipuler comme tel avec du javascript mais je ne peux pas me servir des évènements.

  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 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
    qui t'empèche de rajouter une focntion javascript qui assigne aux evenement onfocus de tes objets une fonction ??
    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
    Membre confirmé Avatar de Prue
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 101
    Par défaut
    Mais ça se fait comment si c'est pas dans les balises INPUT ?

  8. #8
    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 quel types d'objets as tu besoin de faire le test ?
    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 !

  9. #9
    Membre confirmé Avatar de Prue
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 101
    Par défaut
    A l'arrivée c'est un input de type text.

  10. #10
    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
    un seul ?
    il a un id ?
    un name et un incide de name ?
    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 !

  11. #11
    Membre confirmé Avatar de Prue
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 101
    Par défaut
    Un seul. Son name et son ID son le même "TextboxSicovam".

  12. #12
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type='text/javascript'>
    var Focused=false
    function GotFocus(Obj){
    document.getElementById('TextboxSicovam').setAttribute('onfocus',function(){Focused=true;})
    document.getElementById('TextboxSicovam').onfocus=function(){Focused=true;})
    document.getElementById('TextboxSicovam').setAttribute('onblur',function(){Focused=false;})
    document.getElementById('TextboxSicovam').onblur=function(){Focused=false;})
    }
    </script>
    puis dans le onload du body :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="GotFocus">
    ensuite il ne te reste plus qu'a tester Focused
    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 !

  13. #13
    Membre confirmé Avatar de Prue
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 101
    Par défaut
    Ca ne fonctionne pas
    Mais il y a un truc que je ne pige pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('TextboxSicovam').setAttribute('onfocus',function(){Focused=true;})
    affecte à la propriété onfocus de l'input une fonction qui met la variable Focused à true.
    Alors à quoi sert cette ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('TextboxSicovam').onfocus=function(){Focused=true;})

  14. #14
    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
    qu'est ce qui ne fonctionne pas...

    tout ce que doit faire la focntion est d'attribuer aux onfocus et onblur de l'input une fonction javascript qui modifie une variable globale ...

    ensuite à toi de tester le variable dans le code quand tu en as besoin ...

    le doublement de l'attibution c'est pour que cela focntionne aussi bien sur ffx que sur IE ...
    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 !

  15. #15
    Membre confirmé Avatar de Prue
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 101
    Par défaut
    En fait si c'est bon ça marche ^^
    C'était mon autre fonction qui teste le Focused qui était mal arrangée.

    mon héros

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

Discussions similaires

  1. Input de type File sans le champ ?
    Par DemonKN dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 11/02/2010, 13h59
  2. tester si un fichier txt est vide sans l'ouvrir
    Par azamharir dans le forum MFC
    Réponses: 4
    Dernier message: 25/01/2009, 00h41
  3. Comment faire pour tester un checkbox d'un classeur fermé sans l'ouvrir?
    Par elbourin dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/08/2008, 12h59
  4. tester si on est en mode math (sans \ensuremath)
    Par Eusebius dans le forum Mathématiques - Sciences
    Réponses: 0
    Dernier message: 03/06/2008, 18h37
  5. Réponses: 4
    Dernier message: 19/06/2007, 10h02

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