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 :

une certaine checkbox désactive d'autres champs


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut une certaine checkbox désactive d'autres champs
    Bonjour à tous,

    Voilà j'ai actuellement un formulaire contenant une série de checkbox dont le nom est pareil mais la valeur diffère.

    Sous ces checkbox, j'ai des menus déroulants que je souhaiterais désactiver seulement si une checkbox est cochée (mais pas n'importe laquelle, celle dont la valeur = 2 par exemple)

    Donc, j'ai tenté de faire qqchose mais ca ne marche pas et je souhaiterais votre aide si possible :

    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
    <SCRIPT Language="JAVASCRIPT">
    function desactived()
    {
    var buttonchecked == document.forms2.test.checked;
    if(buttonchecked=="2")
    {
    document.forms2.test3.disabled;
    }
    }
    </SCRIPT>
     
    <form name="forms2">
    1<input type="checkbox" name="test" value="1" onClick="desactived()"><br>
    2<input type="checkbox" name="test" value="2" onClick="desactived()"><br>
    <select name="test3"><option value=""></option><option value="">1</option><option value="">2</option></select>
    </form>
    Merci d'avance de 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 640
    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 640
    Points : 66 663
    Points
    66 663
    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
    10
    11
    <SCRIPT type='text/javascript' >
    function desactived(){
    var collChecks= document.getElementsByName('test')
     
    for (i=0,i<collChecks.length){
         if(collChecks[i].value=="2" & collCheck[i].checked){
                             document.forms2.test3.disabled=true;
                      }
         }
    }
    </SCRIPT>

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    arf, j'étais bien loin avec mes tests merci déjà

    euh par contre, ca ne fonctionne pas..

    j'appelle la fonction par un onclick="desactived();" dans mes checkbox mais rien ne se passe lorsque je clique dessus...

  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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ??
    onmouseup ...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    que nenni

    J'ai testé pas toutes les options.. onClick, onMouseUp, onBlur, onFocus,...

    rien n'y fait.. pourtant je teste sur une bete page html où il n'y a que ca (après, ca sera intégré avec le php que je maitrise... j'ai décidé d'apprendre le javascript maintenant... )

  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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    mets un alert en debut de focntion pour voir si le checked est pris en compte ...

    sinon il faudra faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout(function(){desactivted()},500)

  7. #7
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Il suffit de ne pas recopier bêtement un code source mais plutôt essayer de le comprendre.

    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
    <script type='text/javascript' >
    function desactived(){
       var collChecks= document.getElementsByName('test');
    
       for (i=0;i < collChecks.length;i++){
          if(collChecks[i].value=="2" && collChecks[i].checked){
             document.forms2.test3.disabled=true;
          }
          else{
             document.forms2.test3.disabled=false;
          }
          
       }
    }
    </script>
    
    <form name="forms2">
       1<input type="checkbox" name="test" value="1" onClick="desactived()"><br>
       2<input type="checkbox" name="test" value="2" onClick="desactived()"><br>
       <select name="test3"><option value="">
          </option><option value="">1</option>
          <option value="">2</option>
       </select>
    </form>

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    le pire, c'est que t'as raison...

    pourtant, je n'ai pas "bêtement" copié.. enfin si, mais voyant que ca ne fonctionnait pas, je l'ai "étudié" sans voir ces bêtises

    Merci à vous tous...

  9. #9
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    N'oublie pas le .

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    En fait, ce n'est pas résolu et là, je comprends pas :

    Je l'ai intégré au php et voyant que ca ne fonctionne pas, je retourne sur ma page de test.html

    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
    <SCRIPT type='text/javascript' >
    function desactived(){
    var collChecks= document.getElementsByName('test[]')
     
    for (i=0;i<collChecks.length;i++){
         if(collChecks[i].value=="11" && collChecks[i].checked){
                             document.forms2.test3.disabled=true;
                             document.forms2.test4.disabled=true;
                      }
                      else
                      {
                      document.forms2.test3.disabled=false;
                      document.forms2.test4.disabled=false;
                      }
         }
    }
    </SCRIPT>
    </head>
    <body>
     
     
     
    <form name="forms2">
    1<input type="checkbox" name="test[]" value="11" onMouseUp="desactived();"><br>
    2<input type="checkbox" name="test[]" value="1" onMouseUp="desactived();"><br>
    <select name="test3"><option value=""></option><option value="">1</option><option value="">2</option></select><br>
    <input type="text" name="test4" size="45">
    </form>
    Si le 11 est mis dans le checkbox 2, ca marche... si il est mis dans le checkbox 1, ca ne marche pas..

    alors là, je comprends pas du tout :s

  11. #11
    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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    bêtises ...
    heu j'ai pas vu dans le cahier des charges qu'il fallait réactiver la zone si le check était par la suite décoché ...

    sois plus précis à l'avenir dans tes descriptions de fonctionalités !

  12. #12
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Il serait bien de savoir ce que fait exactement onmouseup ...

    Remplace par onclick et le problème est résolu.

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    c'est pas ce que je voulais dire SpaceFrog... Et de toute facon, tu m'as aidé plus que je ne le pensais.. je pensais pas avoir la solution comme tu me l'as donnée, juste des pistes... merci d'ailleurs !!!

    Même sans connaitre le javascript, y'a des trucs que j'aurais pu voir (le &&, le s qui manque), c'est ce que j'appelle des betises que toi, il est normal que tu zappes (je fais pareil qd j'explique du code à quelqu'un) mais que moi, malgré mes lectures et re-lectures, je n'avais pas vu :s

    Là, je test avec des chiffres et le seul fait de changer quelle checkbox va activer le script annule le script, ce que je ne comprends pas...

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    BisounoursJos, j'ai remplacé mais ca ne change rien...

    onMouseUp ou onClick fonctionne mais visiblement seulement si la checkbox est la seconde...

    si je fais en sorte que ce soit la première qui ait le chiffre 11 (qui active le masquage donc), ca ne fonctionne pas... alors que je ne change que la value de la checkbox.. .

  15. #15
    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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    le souci des onclick ou onmouseup des checkboxes est que parfois le statu du checkbox n'as pas le temps de changer ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" onclick="alert(this.checked)" />
    retourne des resultats surprenant selon les pc ou l'encombrement du processeur ...
    mieux vaut l'assortir d'un setTimeout ...

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    mmmm... [réflexion]...

    Je mets l'alerte sur les deux checkbox de test ==> TRUE chaque fois

    Je mets l'alerte ET le masquage sur les 2 checkbox ==> TRUE chaque fois et masquage si la value=11... uniquement à nouveau si c'est la seconde checkbox...

    Bref, si je mets la value 11 sur la première checkbox, il me met TRUE et reconnait donc le check mais n'active pas l'autre script de masquage... tandis que si je ne change que la value et que je mets 11 sur l'autre, ca indique TRUE et ca masque...

    Fred qui est perdu et qui se sens gêné de vous ennuyer comme ca :s

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/05/2015, 10h37
  2. Réponses: 13
    Dernier message: 06/08/2008, 14h36
  3. Réponses: 1
    Dernier message: 15/06/2007, 00h00
  4. Réponses: 3
    Dernier message: 08/06/2007, 11h24
  5. Réponses: 11
    Dernier message: 26/02/2007, 00h04

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