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

Bibliothèques & Frameworks Discussion :

Invisibilité d'une CheckBox crée dans une fonction javascript [Dojo]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 122
    Points : 82
    Points
    82
    Par défaut Invisibilité d'une CheckBox crée dans une fonction javascript
    Hello à tous,
    Après les Datagrid, je continue mon exploration des objets Dojo : je suis confronté au Pb que ma CheckBox est visible si je la déclare dans le code HTML, mais invisible si je la crée à partir d'une fonction javascript.
    Je crée un tableau 1 ligne - 3 colonnes avec :
    1-ère cellule : CheckBox crée comme un élément HTML ( dans ce cas quel avantage procure dojotype="dijit.form.CheckBox" par rapport à un élément <input type="checkbox" ... ? );
    2-ème cellule : CheckBox crée à partir d'une fonction javascript puis ajoutée au DOM;
    3-ème cellule : TextBox crée à partir d'une fonction javascript puis ajoutée au DOM;

    Celà à partit du code suivant :
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <html>
      <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <script type="text/javascript" src="resources/Dojo-1.3.0/dojo/dojo.js">
            </script>
     
            <style type="text/css">
                @import "resources/Dojo-1.3.0/dijit/themes/nihilo/nihilo.css";
                @import "resources/Dojo-1.3.0/dojox/grid/resources/Grid.css";
                @import "resources/Dojo-1.3.0/dojox/grid/resources/nihiloGrid.css";
     
                .dojoxGrid table {
                    margin: 0;
                }
            </style>
     
            <script type="text/javascript">
            djConfig="parseOnLoad: true, isDebug: true";
            dojo.require("dijit.form.CheckBox");
            dojo.require("dijit.form.TextBox");
     
            function casacocher() {
                var mycase = new dijit.form.CheckBox({name: "checkb", value: "etat", checked: false,
                    onChange: function(x){ alert('commute avec = ' + x + 'value = ' + checkb.attr('value') ); }
                }, document.createElement('td'));
                // ajouter la case la section td "maCase":
                dojo.byId("maCase").appendChild(mycase.domNode);
            }
     
            function zonetext() {
                var mytext = new dijit.form.TextBox({}, document.createElement('td'));
                // ajouter le nouveau bouton à la section td "monTexte":
                dojo.byId("monTexte").appendChild(mytext.domNode);
            }
     
            dojo.addOnLoad(casacocher);
            dojo.addOnLoad(zonetext);
        </script>
     
      </head>
     
      <body>
        <table border="2">
     
            <tr>
                <td>
                    <input id="mycb" dojotype="dijit.form.CheckBox"
                           name="gnom" checked="checked" value="on"
                           type="checkbox"
                           style="width: 140px; height: 40px;"/>
                    <label for="mycb"> Gestion Nom </label>
                </td>
                <td id="maCase" dojotype="dijit.form.CheckBox" style="width: 140px; height: 40px;">
                </td>
                <td id="monTexte" dojotype="dijit.form.TextBox"style="width: 140px; height: 40px;">
                </td>
            </tr>
     
        </table>
      </body>
    </html>
    Si les cellules 1 et 3 sont affichées dans le navigateur, la cellule 2 n'affiche aucun contenu, bien que l'élément soit présent quand je fais une inspection avec Firebug :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <td>
    <input id="mycb" type="checkbox" style="width: 140px; height: 40px;" value="on" checked="checked" name="gnom" dojotype="dijit.form.CheckBox"/>
    <label for="mycb"> Gestion Nom </label>
    </td>
    <td id="maCase" style="width: 140px; height: 40px;" dojotype="dijit.form.CheckBox">
    <div class="dijitReset dijitInline dijitCheckBox" wairole="presentation" role="presentation" widgetid="dijit_form_CheckBox_0">
    <input id="dijit_form_CheckBox_0" class="dijitReset dijitCheckBoxInput" type="checkbox" dojoattachevent="onmouseover:_onMouse,onmouseout:_onMouse,onclick:_onClick" dojoattachpoint="focusNode" name="checkb" value="etat" tabindex="0" aria-pressed="false" style="-moz-user-select: none;"/>
    </div>
    </td>
    <td id="monTexte" style="width: 140px; height: 40px;" dojotype="dijit.form.TextBox">
    <input id="dijit_form_TextBox_0" class="dijit dijitReset dijitLeft dijitTextBox" type="text" autocomplete="off" dojoattachevent="onmouseenter:_onMouse,onmouseleave:_onMouse" dojoattachpoint="textbox,focusNode" tabindex="0" widgetid="dijit_form_TextBox_0" value=""/>
    </td>
    Je remarque cependant la présence de <div> ....</div> qui est absent dans le cas de la TextBox de la cellule 3.
    Par ailleurs, lorsque je fais un clic sur la 2-ème cellule, j'obtiens checkb is not defined
    Une idée avant que je n'abandonne cette façon de procéder?

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut Etourderie
    ERE

  3. #3
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 122
    Points : 82
    Points
    82
    Par défaut
    Effectivement, çà marche.
    Etourderie....hum.. ou grosse fatigue : il est temps de partir en week-end

    Merci.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/08/2015, 16h56
  2. Afficher date dans une textbox grace a une checkbox
    Par franco14 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/04/2010, 18h45
  3. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  4. erreur dans une requête sql dans une fonction php
    Par frboyer dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2009, 13h37
  5. Instancier une classe crée dans une autre application
    Par Yvan49 dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/02/2009, 19h29

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