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 :

getElementById et setTimeout


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 65
    Par défaut getElementById et setTimeout
    Bonjour,
    voila j'ai un petit probleme qui me chiffonne depuis quelques temps : en effet je desire utiliser javascript afin de desactiver un bouton en cliquant sur un bouton radio et le reactiver en deselectionnnant le buton radio (la deselection se fait aussi par javascript) voici mon exemple d'essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    	   "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>essai </title>
    <script language="JavaScript">
    var desact = false;
     
    function selection(obj){
     
    	if (obj.checked){desact=true;}
    	obj.form.bouton1.disabled=true;
    	obj.form.bouton2.disabled=false;
     
    }
     
     
    function des(obj){
    	if(desact){
     
    		desact=false;
    		var i=obj.id;
    		obj.form.bouton1.disabled=false;
    		obj.form.bouton2.disabled=true; 
    		window.setTimeout('document.getElementById(i).checked=false;desact=false;',200);
     
    		} 
    }
    </script>
    </head>
    <body>
    <form >
    <input type="radio" onmousedown="selection(this);" onmouseup="if(desact){this.form.bouton1.disabled=false;this.form.bouton2.disabled=true; window.setTimeout('document.getElementById(\'oui\').checked=false;desact=false;',200);}"   id="oui" name="choix" />Oui
    <input type="radio" onmousedown="selection(this);" onmouseup="des(this);" id="non" name="choix" /> Non
    <input type="submit" name="bouton1" value="ajouter" >&nbsp
    <input type="submit" name="bouton2" value="supprimer" disabled="false">&nbsp
    </form>
    </body>
    </html>
    donc j'explique en cliquant sur le bouton radio "oui" cela active l'evenement onmousedown et si je reqlique dessus je vais desactiver ce bouton radio(grace a l'evenemnt onmouseup tout sa bien sur grace a une variable "desact" mis a "true" au bon moment)
    pour le bouton "oui" sa marche car j'ai directement mis le code javascript dans l'attribut de la balise input mais pour le bouton "non" cela ne marche pas car pour celui ci j'ai decide d'utiliser une fonction et je ne comprends pas pourquoi apres des tonnes d'essai cela ne marche pas.

    Le probleme viendrai t il de getElementById ou setTimeout.

    est ce que donc quelqu'un pourrait m'aider??

    sinon une question a part est ce que les evenement onmousedown et onmouseup peuvent agirent en meme temps c'est a dire sans avoir recours a setTimeout

    merci d'avance pour 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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var i=obj.id;
    		obj.form.bouton1.disabled=false;
    		obj.form.bouton2.disabled=true; 
    		window.setTimeout('document.getElementById(i).checked=false;desact=false;',200);
    obj.form ??
    et obj.id .. tu es sur de tes pointers ?
    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
    Novembre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 65
    Par défaut
    oui car j'ai essaye en faisant juste pour verifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    desact=false;
    		//var i=obj.id;
    		obj.form.bouton1.disabled=false;
    		obj.form.bouton2.disabled=true; 
    		window.setTimeout('document.getElementById(\'oui\').checked=false;desact=false;',200);
    et dans ce cas bien sur seul le bouton radio de id='oui' fonctionne
    donc en utilisant la variable i sa ne marche pas :

    pourquoi ???

    merci comme meme pour ta reponse.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par steeve93800 Voir le message
    pour le bouton "oui" sa marche car j'ai directement mis le code javascript dans l'attribut de la balise input mais pour le bouton "non" cela ne marche pas car pour celui ci j'ai decide d'utiliser une fonction et je ne comprends pas pourquoi apres des tonnes d'essai cela ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.setTimeout("document.getElementById('"+i+"').checked=false;desact=false;",200);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.setTimeout('document.getElementById(\''+i+'\').checked=false;desact=false;',200);
    A+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 65
    Par défaut
    je n'ai toujours pas de reponse mais peut etre un indice remarquer ça:

    lorsque je fait dans un fichier
    si je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var a='bonjour';
    alert(a);
    la j'ai l'affichage de bonjour jusque la tout va bien.

    si maintenant je fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.setTimeout('alert(\'bonjour\');', 20);
    (N.B: le 20 corresond a un parametre de setTimeout qui va executer alert dans 20milisecondes ici)
    j'ai le meme resultat en entrant la chaine bonjour sans l'aide d'une variable


    mais la stupeur si je fais ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var a='bonjour';
    window.setTimeout('alert(a);', 20);
    la aucun affichage c'est donc bien un probleme de lie a setTimeout ou peut etre tout simplement au passage de variable a une fonction dans un fonction?

    est ce que vraiment quelqu'un aurait une reponse?

    ps : je suis sous debian avec comme navigateur iceweasel (version libre du navigateur firefox)

    merci d'avance pour vos reponses

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par steeve93800 Voir le message
    je n'ai toujours pas de reponse

    Sympa !!


  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.setTimeout(function(){alert(a);}, 20);
    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 !

  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
    ps : je suis sous debian avec comme navigateur iceweasel (version libre du navigateur firefox)
    Ah firefox n'est pas libre ?????
    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
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.setTimeout(function(){alert(a);}, 20);
    On est d'accord

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 65
    Par défaut
    merciiiiiiiiiiiiiiiiiiiiiiiii


    j'avais pas vu ta reponse c'est cool E.bzz je vais metre resolu de suite

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 65
    Par défaut
    ta peut etre raison spicefrog mais c'est wikipedia qui dit sa fait mais en fait c'est juste une question de licence et pas de notion de code source


    merci a toi aussi pour ta reponse

  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
    ta peut etre raison spicefrog
    Non ce n'est pas de la famille http://www.thespicegirls.com/
    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
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Non ce n'est pas de la famille http://www.thespicegirls.com/
    Mais c'est une bonne idée de recette

  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
    spice de ...
    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 !

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

Discussions similaires

  1. getElementById et Firefox
    Par ludo65 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/02/2005, 10h56
  2. getelementbyid innerhtml sur Opera?
    Par cynthia dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/12/2004, 10h44
  3. probleme avec setTimeout
    Par barbarello dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/11/2004, 13h45
  4. getElementsByName ou getElementById
    Par lepierre dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/10/2004, 15h44

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