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 :

onclick + checkbox : double événement


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Directeur technique
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 22
    Points
    22
    Par défaut onclick + checkbox : double événement
    Bonjour,
    j'ai un petit problème avec les cases à cocher et l'événement onclick.

    Je souhaiterais cocher une checkbox lorsque je clique sur le texte qui lui correspond.

    Jusque là aucun souci, cependant lorsque je clique sur la checkbox (et non sur le texte) celle-ci se coche puis se décoche aussi tôt car elle cumule 2 événements.

    Voici un exemple qui illustre mon problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div onclick="if(!document.getElementById('testc').checked)document.getElementById('testc').checked=true;else document.getElementById('testc').checked=false;">
    <input id="testc" type="checkbox" /> lorsque je clique ici je coche la case
    </div>
    Je sais qu'il y a cette solution, mais elle ne me convient pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <label>
    <input type="checkbox" /> lorsque je clique ici je coche la case
    </label>
    auriez-vous une autre solution à me proposer ?

    Merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="testc" type="checkbox" /><a href="#" onclik="document.getElementById('testc').checked=true;return false;"> lorsque je clique ici je coche la case</a>

  3. #3
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Je sais qu'il y a cette solution, mais elle ne me convient pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <label>
    <input type="checkbox" /> lorsque je clique ici je coche la case
    </label>
    Pourquoi elle ne te convient pas dans la mesure où elle fait exactement ce que tu demandes ???

  4. #4
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Pourquoi elle ne te convient pas dans la mesure où elle fait exactement ce que tu demandes ???
    +1 ^^

    Et en passant : l'utilisation de "label" est plus riche sémantiquement, et elle peut aussi s'écrire de cette façon :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <label htmlFor="maCase">lorsque je clique ici je coche la case</label>
    <input type="checkbox" id="maCase" /> lorsque je clique ici je coche la case

  5. #5
    Membre à l'essai
    Homme Profil pro
    Directeur technique
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Ok merci pour vos suggestions ^^

    Citation Envoyé par Bovino Voir le message
    Pourquoi elle ne te convient pas dans la mesure où elle fait exactement ce que tu demandes ???
    Vous vous doutez-bien que si je pouvais utiliser cette méthode, je le ferais ^^" et ce serrait trop long à expliquer le pourquoi du comment.

    Cependant j'avais oublier que l'on pouvais sortir le input du label, je pense que je vais opter pour cette méthode.

    ps: "htmlFor" ne marche pas chez moi mais "for" si.

    Merci pour votre aide

  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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    htmlFor sert à affecter dynamiquement l'attribut HTML for en JavaScript.

  7. #7
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par johnstyle Voir le message
    ps: "htmlFor" ne marche pas chez moi mais "for" si.
    Mea culpa et précision :
    "for" étant un mot réservé de javascript, on y fait référence dans le code js avec htmlFor, mais dans le code html effectivement, le nom de la propriété est bien "for" ^^

Discussions similaires

  1. Checkbox et évènement pour cocher la case
    Par declencher dans le forum jQuery
    Réponses: 1
    Dernier message: 10/05/2012, 14h50
  2. Double évènement wxListBook?
    Par Spout dans le forum wxWidgets
    Réponses: 5
    Dernier message: 03/07/2008, 09h01
  3. [DOM] print hidden field onclick checkbox!
    Par wzcocoon dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/06/2008, 09h41
  4. Réponses: 3
    Dernier message: 18/06/2007, 16h10
  5. [Drag] Double évènement
    Par Dark Matter dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/02/2006, 23h56

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