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 :

Problème de submit d'une radio box


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 115
    Par défaut Problème de submit d'une radio box
    Bonjour tout le monde,

    Mon problème est que lorsque je sélectionne une radio box , il ne va pas mettre à jour dans mon form.


    voici mon code jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	<html:radio property="extrabedieningaction" value="opName" />
    	<html:radio property="extrabedieningaction" value="afZet"  />
    extrabedieningaction étant une propriété de mon DynaActionForm qui est en session. Cette propriété est de type String et me permet de distinguer quelle méthode à appeler dans mon action...

    Je dois égalment faire des check coté client en javascript, et c'est à ce moment la que je me rend compte que

    document.extraBedieningForm.extrabedieningaction.value == undefined

    j'en ai conclut que le check du radio button n'itialise pas ma variable



    Voilà
    A+

    Quelqu'un aurait-il une meilleure ou autre solution ou voir la solution ? ce serait cool



    A+
    omlip

  2. #2
    Expert confirmé

    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
    Par défaut
    Les tags html:radio sont bien dans un tag html:form ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 115
    Par défaut
    ce fût une bonne idée mais oui ils sont bien dans un <html:form> qui est fermé par un </html:form>

  4. #4
    Expert confirmé

    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
    Par défaut
    Et dans le mapping de l'Action qui doit être exécutée au submit du formulaire, tu as bien déclaré le form-bean de type DynaActionForm via l'attribut name ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 115
    Par défaut
    oui oui oui je vais un peu rééxpliquer les constatations


    lorsque je sélectionne une de mes 2 radio box,

    la variable de mon formulaire dans mon contrôle client side en javascript is undefined (la variable est document.extraBedieningForm.extrabedieningaction.value)


    Par contre si je décide de by passer mon contrôle client side, je me retrouve dans l'action avec un DynaActionForm correctement initialisé et qui contient les valeurs....
    je pensais que Struts réalisait un mappings entre un formulaire HTML et un bean java


    donc si d'un cote, c'est 'vide' , de l'autre ca devrait l'etre aussi non ?

    a+
    omlip

  6. #6
    Expert confirmé

    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
    Par défaut
    Citation Envoyé par omlip
    Par contre si je décide de by passer mon contrôle client side, je me retrouve dans l'action avec un DynaActionForm correctement initialisé et qui contient les valeurs....
    Ben ça, tu aurais dû le dire depuis le début, je ne peux pas le deviner.

    Alors, comment fais-tu ton contrôle en javascript et comment l'appelles-tu ?
    il serait peut-être bon de nous donner un peu plus de code.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 115
    Par défaut
    oui voilà j'amène le code javascript et les différent appels à celui-ci


    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
     
    <script>
    	function goback()
    	{
    		window.location="<bean:write name="backUrl"/>";
    	}	
    	function chooseDetailAction(stype){
    		document.extraBedieningForm.clickedDetail.value=stype;
    	}
    	function chooseAction(stype)
    	{
    		document.extraBedieningForm.extrabedieningaction.value=stype;
    		//alert(document.extraBedieningForm.extrabedieningaction.value);
    	}
     
    	function initform()
    	{
    		//clickedDetail est champ servant a savoir si on veut regarder les details d'un wagons
    		document.extraBedieningForm.clickedDetail.value = "";
    		document.extraBedieningForm.wagonnr.focus();
    	}
     
    	function checkData(){
    		wg = document.extraBedieningForm.wagonnr.value;
    		//alert(wg);
    		if(wg != ''){
    			bed = document.extraBedieningForm.extrabedieningaction.value;
    			clickedDetail = document.extraBedieningForm.clickedDetail.value;
    			//alert(bed);
    			//alert(clickedDetail);
    			//Manière de comparez une valeur indéfinie
    			var undefine;
    			if(bed == undefine && clickedDetail == ''){
    				alert("<bean:message key="extraBediening.noselection" />");
    				return false;
    			}
     
    		}else{
    			alert("<bean:message key="extraBediening.nowagonnr" />");
    			return false;
    		}
    		return true;
    	}
     
    	function build(nummer){
    		document.extraBedieningForm.wagonnr.value = nummer;
    	}
    </script>
    le principal contrôle est la fonction checkData

    Voici à présent un résumé de ma page Jsp avec les différents éléments du formulaire ainsi que les appels vers javascript nécéssaire

    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
     
    <html:form action="/extraBediening" onsubmit="return checkData()">
    	<html:hidden property="clickedDetail" />
     
     
    <html:radio property="extrabedieningaction" value="opName" onclick="chooseAction('opName')"/>
     
    <html:radio property="extrabedieningaction" value="afZet" onclick="chooseAction('afZet')"/>
     
     
     
    <a href="javascript:if(checkData())document.extraBedieningForm.submit();">
    <bean:message bundle="images" key="button.path" arg0="transfer"/></a>
     
    </html:form>

    Remarquez que les "onclick " dans les tag html:radio ont été mon seul moyen de trouver une parade à ce problème :S, j'aimerais quand même bien faire aller
    ce formulaire

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 115
    Par défaut
    Bonjour,

    j'ai tout de même trouvé une alternative mais vraiment pas belle et avec du javascript, mais le post reste ouvert à une solution plus jolie que de récupérer le form dans le code javascript :s



    A+
    omlip

  9. #9
    Expert confirmé

    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
    Par défaut
    Je n'ai pas trouvé comment résoudre ton problème de html:radio et de javascript mais en relisant ceci :
    Citation Envoyé par omlip
    extrabedieningaction étant une propriété de mon DynaActionForm qui est en session. Cette propriété est de type String et me permet de distinguer quelle méthode à appeler dans mon action...
    je me disais que tu pourrais utiliser une DispatchAction ou une LookupDispatchAction.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 45
    Par défaut
    En fait, ton formulaire contient 2 éléments de type radio bouton donc quand tu y fais référence en javascript, il te faut les indexer. En clair, il faudrait que tu fasses ceci pour déterminer la valeur sélectionnée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (document.extraBedieningForm.extrabedieningaction[0].checked)
    then { bed = document.extraBedieningForm.extrabedieningaction[0].value; }
    else if (document.extraBedieningForm.extrabedieningaction[1].checked)
    then { bed = document.extraBedieningForm.extrabedieningaction[1].value; }
    // else rien n'est coché

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 115
    Par défaut
    Meric ga.la

    Cela a résolu mon problème, merci beaucoup, j'ai pu enlever tout le code bourrin en javascript etc...


    Merci
    a+

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

Discussions similaires

  1. rendre invisible un bout de code en fonction d une radio box
    Par florianjoy54 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/02/2011, 14h14
  2. Réponses: 0
    Dernier message: 23/06/2008, 22h11
  3. Problème de valeur d'une check box
    Par guiguisb dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/09/2007, 13h18
  4. Problème de "rafraichissement" dans une edit box e
    Par X-K4l1 dans le forum Windows
    Réponses: 1
    Dernier message: 23/08/2005, 11h49
  5. Réponses: 2
    Dernier message: 17/08/2003, 20h07

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