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

Servlets/JSP Java Discussion :

Javascript et Jsp


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Par défaut Javascript et Jsp
    Bonjour,
    Je rencontre un problème dans le développement de ceci :
    J'ai une collection qui s'affiche dans une liste déroulante multi choix et je souhaite que lorsque la personne choisit une ligne spécifique de la liste déroulante par exemple PPERSP qu'un checkbox avec son intitulé apparaisse dans le formulaire.

    Alors voici un bout de mon jsp avec le javascript que j'essaie de faire fonctionner mais hélas, j'ai même pas l'impression que la checkbox "Vr à bloquer" se cache :s :

    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
     
    <script type="text/JavaScript" language="JavaScript">
    /**
    * fonction d'affichage de la zone "Vr à bloquer" en fonction de la sélection de la campagne "PPERSP" dans la liste déroulante Campagne
    */
    function displayVrABLOQUER() {
            var selectObj = document.crediparForm.opFid;
            var size = selectObj.options.length;
        
            for (var i=0; i< size; i++) {
                    if(selectObj.options[i].value=='PPERSP' && selectObj.options[i].selected) {
                            affiche = true;
                    }
            }
        if (affiche==true) {
            vr.style.visibility = "visible";
        } else {
        vr.style.visibility = "hidden";
        }
    }
    </SCRIPT> 
     
    <!-- Partie du formulaire à faire apparaitre si PPERSP de la liste campagne est sélectionné-->
    <td class="textebold">VR à bloquer <html:checkbox property="codeVr" value="true" /></td>
     
    <!--Liste déroulante de campagne-->
    <td ROWSPAN="2"><html:select property="opFid" multiple="true" size="4" onchange="displayVrABLOQUER();">
    <html:options collection="opsFid" labelProperty="libelle" property="code" />
    			</html:select></td>
    Si quelqu'un a une idée ça serait cool car moi et le javascript... je m'emmèle un peu...
    Merci.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Je ferais ceci à ta place
    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
     
    ...
    <script type="text/JavaScript" language="JavaScript">
    /**
    * fonction d'affichage de la zone "Vr à bloquer" en fonction de la sélection de la campagne "PPERSP" dans la liste déroulante Campagne
    */
    function displayVrABLOQUER() 
    {
        if (document.crediparForm.opFid.value == "PPERSP") 
        {
            document.getElementById("zoneVR").style.visibility = "visible";
        }
        else
        {
            document.getElementById("zoneVR").style.visibility = "hidden";
        }
    }
    </script> 
     
    <!-- Partie du formulaire à faire apparaitre si PPERSP de la liste campagne est sélectionné-->
    <td class="textebold">
        <span id="zoneVr">
        VR à bloquer <html:checkbox property="codeVr" value="true" />
        </span>
    </td>
     
    <!--Liste déroulante de campagne-->
    <td ROWSPAN="2">
        <html:select property="opFid" multiple="true" size="4" onchange="displayVrABLOQUER();">
            <html:options collection="opsFid" labelProperty="libelle" property="code" />
        </html:select>
    </td>
    ...
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Je ferais ceci à ta place
    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
     
    ...
    <script type="text/JavaScript" language="JavaScript">
    /**
    * fonction d'affichage de la zone "Vr à bloquer" en fonction de la sélection de la campagne "PPERSP" dans la liste déroulante Campagne
    */
    function displayVrABLOQUER() 
    {
        if (document.crediparForm.opFid.value == "PPERSP") 
        {
            document.getElementById("zoneVR").style.visibility = "visible";
        }
        else
        {
            document.getElementById("zoneVR").style.visibility = "hidden";
        }
    }
    </script> 
     
    <!-- Partie du formulaire à faire apparaitre si PPERSP de la liste campagne est sélectionné-->
    <td class="textebold">
        <span id="zoneVr">
        VR à bloquer <html:checkbox property="codeVr" value="true" />
        </span>
    </td>
     
    <!--Liste déroulante de campagne-->
    <td ROWSPAN="2">
        <html:select property="opFid" multiple="true" size="4" onchange="displayVrABLOQUER();">
            <html:options collection="opsFid" labelProperty="libelle" property="code" />
        </html:select>
    </td>
    ...
    A+
    Merci pour ton aide. Oui c'était pas si compliqué que ça enfin de compte mais le soucis car un souci parfois peut en cacher un autre est que le code de la jsp que j'avais posté est malheureusement déjà dans un autre span avec un id permettant de mettre à jour ce span qui regroupe celui du Vr.
    Je sais pas si j'ai été assez clair du coup bah ça merdouille. Il doit mal réagir le fait de voir deux Ids dans deux spans. Il me fait des bugs d'affichage.

    <span Id=1>
    <span Id=2>
    Checkbox Vr blablabla
    </span>
    </span>

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Ça ne pose pas de problème en soit d'avoir 2 <SPAN> imbriqués, le problème est plus sûrement lié au fait que tu as un tableau, du moins avec Firefox.
    Si par exemple on a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <tr id="t1">
       <td>un texte</td>
       <td><input type="checkbox" name="n1"/></td>
    </tr>
    et qu'on "s'amuse" à cacher/afficher la ligne avec "display=(none|block)", le résultat sera correcte sur IE (et oui, ça arrive qu'il réagisse mieux !) et naze sur Firefox.

    Pour t'aider, il faudrait poster la page

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Par défaut
    Alors voici les éléments importants de ma page jsp:

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    <html:html>
    <head>
    <link rel="stylesheet" href="<%=request.getContextPath()%>/site/themes/style.css" type="text/css">
    <script type="text/JavaScript" src="<%=request.getContextPath()%>/site/script/testform.js"></script>
    <script type="text/JavaScript" language="JavaScript">
    function reloadList() {
            updatePage("updateTest.do", "testForm");
    }
     
    /**
    * fonction d'affichage de la zone "Vr à bloquer", si PPERSP de la liste déroulante TestC est sélectionnée alors la checbox VR apparait
    */
    function displayVrABLOQUER() 
    {
        if (document.testForm.opFid.value == "PPERSP") 
        {
            document.getElementById("zoneVR").style.visibility = "visible";
        }
        else
        {
            document.getElementById("zoneVR").style.visibility = "hidden";
        }
    }
     
    </SCRIPT> 
     
    </head>
     
    <body>
    <span id="credipar">
    	<html:form action="toto.do" method="post">
    	<FIELDSET>
    	<LEGEND align=top>Critères de recherche </LEGEND>
    	<div align="left">
    	<table>
    		<tr>
    			<td class="textebold">TestA</td>
    			<td class="textebold">TestB</td>
    		</tr>
    		<tr>
    <td><html:select property="dtestA" size="1" onchange="reloadList();">
    <html:option value=""> --- Choississez un TestA --- </html:option>
    <html:options collection="testsA" labelProperty="nom" property="id" />
    </html:select></td>
    <td><html:select property="testsB" size="1" onchange="reloadList();">
    <html:option value=""> --- Choississez un TestB--- </html:option>
    <html:options collection="testsB" labelProperty="libTestB" property="id" />
    </html:select></td>
    		</tr>
    	</table>
    	<table>
    		<tr>
    			<td class="textebold">TestC</td>
    			<td></td>
    		</tr>
    		<tr>
    <td><html:select property="testC" size="1">
    <html:option value=""> --- Choississez un TestC--- </html:option>
    <html:options collection="testC" labelProperty="nomprenom" property="id" />
    </html:select></td>
    <td class="textebold">
    <div id="zoneVr">
    VR <html:checkbox property="codeVr" value="true"/>
    </div>
    			</td>
    		</tr>
    	</table>
    	<table>
    		<tr>
    			<td class="TestD</td>
    			<td></td>
    		</tr>
    		<tr>
    			<td ROWSPAN="2"><html:select property="testD multiple="true" size="4" onchange="displayVrABLOQUER();">
    				<html:options collection="testsD" labelProperty="libelle" property="code" />
    			</html:select></td>
     
    			<td></td>
     
    			<td align="right"><html:submit style="width:125px" value="Afficher" /></td>
    		</tr>
    		<tr>
    			<td></td>
    		</tr>
    	</table>
    	</div>
    	</FIELDSET>
    	<br>
    </html:form> 
    </span>
     
    <script>displayVrABLOQUER()</script>
    </body>
    </html:html>
    Voilà le code. En faite j'ai remplacé le span par un div car avec le span, lorsque je sélectionnais dans la liste déroulante TestA, tout ce qui se trouve en dessou du checkbox Vr disparaissait. Avec le div ça passe mieux mais le souci est lorsque je sélectionne dans la liste déroulante TestA, il me fait apparaitre le checkbox Vr alors que l'élement de la liste TestC n'est pas sélectionné. Car la checkbox Vr ne doit apparaitre que si PPERSP de la liste déroulante TestC est sélectionné.
    Si vous voyez comment je pourrais m'en sortir de ça, ça m'aiderait beaucoup.
    Merci.

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Que fait au juste ta méthode updatePage(...) ?
    - une soumission du formulaire
    - ajax
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [Javascript to jsp] Encode url
    Par HydN- dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/07/2007, 18h15
  2. Javascript et JSP - sur onclick() changer valeur d'un boolean
    Par petiteso dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2007, 09h46
  3. Javascript dans JSP
    Par waiso dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 23/05/2006, 16h25
  4. Javascript et JSP
    Par roxxor31 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/05/2006, 17h24
  5. Pb encodage avec javascript et JSP
    Par marti dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 21/12/2005, 10h06

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