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

Contribuez Discussion :

[SRC] personnaliser des checkboxes


Sujet :

Contribuez

  1. #1
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut [SRC] personnaliser des checkboxes
    peut aussi s'adapter pour des radios

    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
    41
    42
    43
    44
    45
    46
    47
    <html>
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>CheckBox personamlisées</title>
    <style type='text/css'>
    label.checkbox_checked {
        background: white url('checked.gif') no-repeat;    
        padding: 0px 5px 5px 25px;
        font-family:verdana;
        font:12px;
        display: block;
        margin:  0px;
     
     
     
    }
    label.checkbox_unchecked  {
        background: white url('unchecked.gif') no-repeat;    
        padding: 0px 5px 5px 25px;
        font-family:verdana;
        font:12px;
        display: block;
        margin:  0px ;
     
    }
    </style>
    <script type='text/javascript'>
    function Warp(obj){
    obj.className=(obj.className=='checkbox_unchecked')?'checkbox_checked':'checkbox_unchecked';
    mycheck=document.getElementById('checkbox_1')
    mycheck.checked=!mycheck.checked
    }
    </script>
     
    </head>
     
    <body><br/>
    <label  id="label_1" class="checkbox_unchecked" onclick="Warp(this)">Ceci est en fait un label</label>
    <input name="checkbox_1" id="checkbox_1" type="checkbox"  style='z-index:10;visibility:hidden;' />    
     
    <br/><br/>
    <input type="button" onclick="alert(document.getElementById('checkbox_1').checked)" value="verifie le check" />
     
    </body>
     
    </html>
    en cadeau les deux gifs ...
    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 !

  2. #2
    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 : 40
    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
    Je viens de me faire un petit code qui prend beaucoup moins de place.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function changeCheck(objImg, objCheck){
       objImg.src       = (objCheck.checked) ? "unchecked.gif" : "checked.gif";
       objCheck.checked = (objCheck.checked) ? "" : "checked";
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div style="position:relative">
       <input type="checkbox" id="check1" name="check1" style="visibility:hidden" />
       <img id="img1" src="unchecked.gif" style="position:absolute;left:0" onclick="changeCheck(this, document.getElementById('check1'))" />
       <label onclick="changeCheck(document.getElementById('img1'), document.getElementById('check1'))">Ceci est un label</label>
    </div>

  3. #3
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    en fait l'idée de depart est de faire un truc qui utilisait le for ...
    cela doit être possible en mettant l'inpout checkbox en visible mais masqué derrière le lable en position relative de z-index inférieur...

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <html>
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>CheckBox personamlisées</title>
    <style type='text/css'>
    .checkbox_checked {
    	background: white url('checked.gif') no-repeat;	
    	padding: 0px 5px 5px 25px;
    	font-family:verdana;
    	font:12px;
    	display: block;
    	margin:  0px;
    	position: absolute;
    	z-index:10;	
     
     
     
    }
    .checkbox_unchecked  {
    	background: white url('unchecked.gif') no-repeat;	
    	padding: 0px 5px 5px 25px;
    	font-family:verdana;
    	font:12px;
    	display: block;
    	margin:  0px ;
    	position: absolute;
    	z-index:10;
     
    }
    </style>
    <script type='text/javascript'>
    function Warp(obj){
    obj.className=(obj.className=='checkbox_unchecked')?'checkbox_checked':'checkbox_unchecked';
    }
    </script>
     
    </head>
     
    <body><br/>
    <div style="position:absolute;top:100px; left:300px;width:200px;">
    <label id="label_1" for='checkbox_1'  class="checkbox_unchecked" onclick="Warp(this)">Ceci est en fait un label</label>
    <input name="checkbox_1" id="checkbox_1" type="checkbox"  style="positon:absolute;top:0em;left:0em;z-index:1;"  />	
    </div>
    <br/><br/>
    <input type="button" onclick="alert(document.getElementById('checkbox_1').checked)" value="verifie le check" />
     
    </body>
     
    </html>
    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 !

  4. #4
    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 : 40
    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
    Dans mon code, j'ai essayé comme ça :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div style="position:relative">
       <input type="checkbox" id="check1" name="check1" onchange="changeCheck(document.getElementById('img1'), this)" />
       <img id="img1" src="unchecked.gif" style="position:absolute;left:0px" onclick="changeCheck(this, document.getElementById('check1'))" />
       <label for="check1">Ceci est un label</label>
    </div>

    Mais le for du label lance le check avant la fonction onchange, donc ce qui fait qu'elle ne change pas d'état. :/

  5. #5
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Bisûnûrs
    Mais le for du label lance le check avant la fonction onchange, donc ce qui fait qu'elle ne change pas d'état. :/
    Sous IE en tous cas, avec le label, il faut utiliser onclick plutôt que onchange dans l'input ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  6. #6
    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 : 40
    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
    Citation Envoyé par E.Bzz
    Sous IE en tous cas, avec le label, il faut utiliser onclick plutôt que onchange dans l'input ...
    Ca ne change apparemment rien du tout, j'ai le même comportement.

  7. #7
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Il me semblait que onchange ne réagissait qu'à une modif de l'utilisateur (pas via un script)
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    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 : 40
    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
    http://josselin.willette.free.fr/cod...ces/gestform2/

    Hop, je me suis fait un petit formulaire complet entièrement personnalisé.

    Celui du haut est celui par défaut et celui du bas est le personnalisé.

    Il est entièrement fonctionnel et utilise peu de Javascript, et pour le peu qu'il en utilise, rien de bien méchant.

    Maintenant suffit de trouver une solution convenable pour les type file.

  9. #9
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Pour les types files, a mon avis il n'y a pas tellement de possibilité...
    Un truc que j'ai remarqué avec le Select aussi : quand il est ouvert et qu'on clique en dehors, il ne se ferme pas. Un petit bout de JS en plus sera nécessaire ^^

  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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    sur firefox le texte depasse du select ...
    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
    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 : 40
    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
    Citation Envoyé par SpaceFrog
    sur firefox le texte depasse du select ...
    Hum, pas si tu fais un Ctrl+0 pour remettre la taille de police par défaut.
    Faudra que je gère ça ...

  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 : 40
    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
    Customisation du bouton Parcourir ...

    http://josselin.willette.free.fr/cod...s/btparcourir/

  13. #13
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Bisûnûrs
    Customisation du bouton Parcourir ...
    Idem
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  14. #14
    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 : 40
    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
    Citation Envoyé par E.Bzz
    Mon code est quand même moins compliqué.

  15. #15
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Bisûnûrs
    Mon code est quand même moins compliqué.
    Clairement
    Et puis surtout c'est "ton code", alors que celui-ci n'est pas "le mien".
    Je m'étais contenté de garder ça sous le coude en cas de besoin

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  16. #16
    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 : 40
    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
    J'ai rajouté dans le fichier précédent le fait d'afficher ou non le nom du fichier après l'avoir sélectionné.

  17. #17
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par Bisûnûrs
    Customisation du bouton Parcourir ...
    hum, en cliquant juste à côté du bouton, j'ai un curseur qui apparait et je peux taper tout ce que je veux... sans voir ce que j'écris car c'est du blanc sur fond blanc

  18. #18
    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 : 40
    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
    Citation Envoyé par Auteur
    hum, en cliquant juste à côté du bouton, j'ai un curseur qui apparait et je peux taper tout ce que je veux... sans voir ce que j'écris car c'est du blanc sur fond blanc
    J'ai corrigé en mettant onkeypress="return false" et onmousedown="return false"

  19. #19
    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 : 40
    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
    J'ai mis à jour l'URL :

    http://josselin.willette.free.fr/cod...ces/gestform2/

    J'utilise un minimum de Javascript (20 lignes) et j'ai réussi à utiliser l'attribut for de la balise label pour les radiobuttons et les checkboxes.

  20. #20
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    le champ file a un bug : je peux taper tout ce que je veux (sans voir ce que je tape) et lorsque je réalise un onblur le texte apparaît.

    Tu devrais peut-être mettre en lecture seule les éléments input_text_file et input_file, puisque que c'est le bouton parcourir qui est censé remplir ce(s) champ(s).

    Sinon un truc m'intrigue : comment as-tu personnalisé le bouton "Parcourir" de l'input file ?

    Bravo pour ce code

Discussions similaires

  1. Personnaliser des checkbox
    Par Msysteme dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 11/01/2015, 14h48
  2. [2.x] [Form] Personnaliser le field_row des checkboxes
    Par Ph3nol dans le forum Symfony
    Réponses: 10
    Dernier message: 11/06/2012, 10h46
  3. [C#] Tableau généré contenant des checkbox
    Par la_muraille dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/04/2005, 12h16
  4. Cochage des checkbox d'un dbgrid
    Par kose dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/01/2005, 16h26
  5. boucler sur des checkboxes
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 09/10/2004, 08h27

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