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 :

[checkbox] soumission d'une valeur en fonction de l'etat du checkbox


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 190
    Par défaut [checkbox] soumission d'une valeur en fonction de l'etat du checkbox
    Bonjour,
    j'ai un checkbox auquel j'ai associé un événement onclick
    le problème c'est que j'appelle la fonction javascript.
    Mais dans la page source, le paramètre que je passe à cette fonction n'est pas remplacé par sa valeur (pour info, c'est développé en struts, mais au niveau de traitement des événement ça reste le même que pour une page jsp classique)
    auriez vous une idée pourquoi?

    voici le code javascript du composant, comme vous le constatez <%= Integer.parseInt(numLigne) %>) n'est pas remplacé par sa valeur.
    Pourtant, numLigne, je l'utilise dans l'appel d'autre fonction de la même page, et c'est remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <nested:checkbox property="CAjustTypeAjust" onclick="verifierReversible(<%= Integer.parseInt(numLigne)  %>)"></nested:checkbox>
    j'obtiens ceci dans la page source générée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <td colspan="1" style="width: 223px; height: 23px; text-align: center; background-color: #f0f8ff                       inactivecaptiontext;">
    <input type="checkbox" name="ajustContrat[0].CAjustTypeAjust" value="on" onclick="verifierReversible(<%=Integer.parseInt(numLigne) %>)">
    et voici la fonction javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function verifierReversible(i){
    if (document.forms[0].elements["ajustContrat["+i+"].CAjustTypeAjust"].checked==true){
    document.forms[0].elements["ajustContrat["+i+"].CAjustTypeAjust"].value="R";
    } else {
    document.forms[0].elements["ajustContrat["+i+"].CAjustTypeAjust"].value=null;
    }
     
    }

    Cdlt
    Sallemel

  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
    Il faut plutôt coder le onclick comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="<%="verifierReversible("+Integer.parseInt(numLigne)+")"%>"
    d'ailleurs, ce ne serait pas plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="<%="verifierReversible("+numLigne.intValue()+")"%>"

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Pourquoi un appel jsp là où il n'en faut pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="<%="verifierReversible("+numLigne.intValue()+")"%>"
    Pour l'appel de ta fonction via onclick, ce code est suffisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="verifierReversible(parseInt(numLigne))"
    A moins que j'aie pas bien cerné le pb .
    parseInt est une fonction js qui marche plutot bien.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 190
    Par défaut
    j'ai eu cette erreur
    Attribute value "verifierReversible("+Integer.parseInt(numLigne)+")" is quoted with " which must be escaped when used within the value
    avec ce codage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onclick="<%="verifierReversible("+Integer.parseInt(numLigne)+")"%>"
    avec ca aussi, ca ne passe pas, pas de remplacement de numLigne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onclick="verifierReversible(parseInt(numLigne))"
    sinon, pour info numLigne est un String


    Cdlt
    Sallemel

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    numLigne est une variable js ou jsp ?
    Si c js tu fais ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="verifierReversible(parseInt("+numLigne+"))"
    Si c jsp tu fais ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="verifierReversible(parseInt("+<%=numLigne%>+"))"
    Normalement ca devrait marcher, le truc c que tout à l'heure numLigne n'etait pas interpretée comme etant une variable.

  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
    C'est un problème de quotes.
    Cela fonctionne-t'il mieux comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick='<%="verifierReversible('"+Integer.parseInt(numLigne)+"');"%>'
    quant à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="verifierReversible(parseInt(numLigne))"
    ça ne peut fonctionner parce qu'il ne remplacera pas numLigne par sa valeur.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 190
    Par défaut
    avec le simple quote , ca ne marche pas aussi

    Attribute value "verifierReversible('"+Integer.parseInt(numLigne)+"');" is quoted with ' which must be escaped when used within the value

Discussions similaires

  1. Probleme vba pour renvoyer une valeur en fonction de deux criteres
    Par tarif dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/04/2008, 19h28
  2. Réponses: 3
    Dernier message: 22/03/2008, 11h48
  3. Réponses: 5
    Dernier message: 09/12/2007, 18h17
  4. Réponses: 15
    Dernier message: 02/05/2007, 18h04
  5. Réponses: 4
    Dernier message: 01/06/2006, 14h58

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