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

Struts 1 Java Discussion :

[Struts-Layout][layout:date] évènement onchange qui ne se déclenche pas


Sujet :

Struts 1 Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut [Struts-Layout][layout:date] évènement onchange qui ne se déclenche pas
    Bonjour,

    J'ai besoin de détecter la modification d'un champ date (layout:date)

    Lorsque je modifie directement la zone de saisie il n'y a pas de problème, l'évènement onchange est bien généré, mais lorsque je clic sur le calendrier et que je sélectionne une date, aucun des évènement n'est généré (ni onchange, ni onfocus, ni onblur).

    Un peu comme si les évènement d'un layout:date étaient liés à la zone de saisie mais que lors de la modification de ce champ via le calendrier les évènements n'étaient pas générés.

    Y-a-t-il une subtilitée que je n'ai pas saisi ?
    Comment faire pour détecter la modification d'un layout:date même lorsqu'il est modifié par l'intermédiaire du calendrier ?

    Voici le code de la 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
     
    <<table  border=0 cellpadding=0 cellspacing=0>
    	<layout:date	startYear="<%=com.maSociete.util.monProjetUtil.getStartYear()%>" 
    			endYear="<%=com.maSociete.util.monProjetUtil.getEndYear()%>"
    			calendarTooltip="S&eacute;lectionnez la date" 
    			key="" 
    			patternKey="dd/MM/yyyy"  
    			disabled="false" 
    			size="10" 
    			maxlength="10" 
    			name="uneAffaire" 
    			property="dateD1" 
    			onchange="dateD1Modifiee(this);setModification();" 
    			layoutId="dateD1" 
    			styleClass="LABEL" mode="E,E,E"
    	/>
    </table>
    Et voici le code HTML généré :
    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
     
    <table  border=0 cellpadding=0 cellspacing=0>
    	<tr>
    		<th valign="top" class="LABEL" id="dateD1L">
    			<span class="LABEL"></span>
    		</th>
    		<td valign="top" class="LABEL" id="dateD1F" style="">
    			<input type="text" name="dateD1" maxlength="10" size="10" value="" onchange="dateD1Modifiee(this);setModification();" class="LABEL">
    			<a href="javascript://" onclick="showCalendar(2008,11,27,'dd/MM/yyyy','affaireForm','dateD1',event,1998,2018);">
    				<img alt="S&eacute;lectionnez la date" border="0" src="/MONPROJET_EVO/inc/images/treeviewImg/calendar.gif">
    			</a>
    			<img name="dateD1required" src="/MONPROJET_EVO/inc/images/treeviewImg/clearpixel.gif">
    		</td>
    	</tr>
    </table>
    Un peu d'aide serait le bienvenue

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Quelle version de Struts-Layout utilises-tu ?
    parce qu'en Struts-Layout 1.3, il y a bien un évènement onchange lors du clic sur une date dans le calendrier.

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Désolé pour le délai de réponse, c'était le gros rush au boulot et j'avais (j'ai) des problème avec mon FAI chez moi ... désolé

    Concernant la version de Struts-Layout c'est la 1.0 (c'est un vieux projet).

    Entre temps j'ai trouvé une solution de contournement que voici :

    la méthode suivante est appelée lors du clic sur une date du calendrier, j'y ai juste ajouté l'appel à l'évènement onchange :
    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
    **
     * Update the date in the input field and hide the calendar.
     * PENDING: find a way to make the format customable.
     */
    function dtemaj(jour, mois, annee){
    	document.forms[calformname].elements[calformelement].value = formatDate(jour, mois, annee);
    	document.forms[calformname].elements[calformelement].stlayout = new Object();
    	document.forms[calformname].elements[calformelement].stlayout.day = jour;
    	document.forms[calformname].elements[calformelement].stlayout.month = mois;
    	document.forms[calformname].elements[calformelement].stlayout.year = annee;
    	document.forms[calformname].elements[calformelement].onchange();
            hideCalendar();
    	
    }
    Ca fonctionne, mais s'il y a une meilleur solution je suis preneur.
    Dans tous les cas merci pour ta réponse et pour ton implication sur ce forum

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 153
    Points : 138
    Points
    138
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <<table  border=0 cellpadding=0 cellspacing=0>
    il y a un chevron en trop ^^

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

Discussions similaires

  1. Date avec GregorianCalendar qui ne s'affiche pas correctement
    Par glasgow dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 01/07/2009, 11h01
  2. Evènement qui ne se déclenche pas
    Par max.lille dans le forum Langage
    Réponses: 8
    Dernier message: 09/05/2006, 15h46
  3. onmouseover qui ne se déclenche pas sous IE...
    Par narnou dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/03/2006, 17h26
  4. Un JOB qui ne se déclenche pas
    Par blids dans le forum Oracle
    Réponses: 15
    Dernier message: 09/02/2005, 21h14
  5. [trigger] ... qui ne se déclenche pas
    Par bozo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/01/2004, 11h31

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