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 :

[validator]erreur javascript fonction _required not defined


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Par défaut [validator]erreur javascript fonction _required not defined
    Salut,

    J'utilise le validator struts pour verifier un gros formulaire. mais j'ai une erreur javascript qui m'empeche de faire fonctionner correctement.

    Au moment de cliquer sur valider, j'ai une erreur :

    "startSubscriptionForm_required is not defined"

    Alors, j'ai eregardé le code source de la page.. les methodes js sont bien présentes..mais effectivement pas de startSubscriptionForm :-(


    Une idée ?

  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
    Salut jeb001

    Donc, te revoilà Lundi matin avec un nouveau problème.
    J'espère qu'on le résoudra plus vite que celui de Vendredi.

    Peux-tu vérifier que startSubscriptionForm est bien écrit de la même façon, soit avec un s minuscule (!), dans l'attribut name de la balise form-bean du struts-config.xml, dans l'attribut name de la balise action de ton Action, dans l'attribut name de la balise form de validation.xml et dans l'attribut formName de la balise html:javascript de ta jsp ?

    Et as-tu bien ceci dans la balise html:form de ta jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return validateStartSubscriptionForm(this)"

  3. #3
    Membre confirmé Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Par défaut
    Salut !

    Je retrouve les memes fidèles au postes !!

    Alors, en fait, j'ai un cahier des charges un peu compliqué, et je dois faire un appel javascript sur validation du formulaire.

    g donc ca :

    onclick=javascript:validateStartSubscriptionForm(document.startSubscriptionForm);
    oui, j'oubliais, je valide mon formulaire sur un lien

    Pour les vérifications, mon bean s'appele "startSubscriptionForm".

    validation.xml :
    <form-validation>
    <formset>
    <form name="startSubscriptionForm">
    <field property="name" depends="required">
    <arg0 key="inscription.nom"/>
    </field>
    </form>
    </formset>
    </form-validation>
    struts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	<form-beans>
            <form-bean name="startSubscriptionForm" type="sapinscription.form.StartSubscriptionForm"/>
            <form-bean name="subscriptionSecondStepForm" type="sapinscription.form.SubscriptionSecondStepForm"/>
     
        </form-beans>
     
      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property  property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
      </plug-in>

    voila..
    et donc, mon erreur js sur submit, c
    "startSubscriptionForm_required() is not defined.

    En regardant le js généré, je vois que le code arrive dans la methode 'validateRequired'.. qui genere un appele sur "nomDuFormulaire_required()".

    Mais cette methode n'a pas eté générée dans mon cas.

  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
    Citation Envoyé par jeb001
    Alors, en fait, j'ai un cahier des charges un peu compliqué, et je dois faire un appel javascript sur validation du formulaire.

    g donc ca :

    onclick=javascript:validateStartSubscriptionForm(document.startSubscriptionForm);
    oui, j'oubliais, je valide mon formulaire sur un lien
    Je ne comprends pas bien.

    Ceci signifie-t'il que tu as défini une fonction javascript que tu as appelé validateStartSubscriptionForm ou souhaites-tu appeler la fonction javascript du même nom automatiquement générée par le Validator ?

    Peux-tu montrer le code exact du lien qui fait appel à la validation du formulaire ?

  5. #5
    Membre confirmé Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Par défaut
    Bin au lieu de mettre l'attribut "onsubmit" sur le taf form... je fais appel à la fonction générée par le validator sur le click de mon lien.


    Je sais pas si je suis bien clair..?

  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
    Ok, si c'est clair.

    Normalement, si dans ta jsp tu as codé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:javascript formName="startSubscriptionForm"/>
    En affichant le source de ta jsp, tu devrais voir, en autre, les fonctions javascript suivantes :
    - validateStartSubscriptionForm(form)
    - startSubscriptionForm_required ()
    - validateRequired(form).
    Si ce n'est pas le cas, je ne comprends pas pourquoi.

    Sinon, as-tu vérifié que le Validator fonctionne bien comme on te le décrit avec la Struts 1.1 ?

  7. #7
    Membre confirmé Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Par défaut
    Mon pb vient du fait qu'il me manque ma methode "startSubscriptionForm_required ()" !!

    Peut etre un probleme dans mon validation.xml ??

  8. #8
    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 jeb001
    Mon pb vient du fait qu'il me manque ma methode "startSubscriptionForm_required ()" !!
    j'ai bien compris mais je ne vois pas pourquoi.

  9. #9
    Membre confirmé Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Par défaut
    Ca doit venir du fait qu'il ne parse pas le validation.xml .. c'est lui qui dit que le champ est required... et donc qui doit generer les methodes required.

    Si qqun en sait d'avantage !!

  10. #10
    Membre confirmé Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Par défaut
    La génération de la méthode js "nomForm_required()" est-elle systématique ou est-elle uniquement initiée par le positionnement d'une contrainte 'require' sur un des champs du formulaire ??

  11. #11
    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 pense que la fonction javascript nomForm_required() est uniquement générée si tu as positionné une contrainte required sur un des champs du formulaire.

  12. #12
    Membre confirmé Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Par défaut
    En y regardant plus en détail, l'erreur javascript est levée sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        function validateRequired(form) {
            var isValid = true;
            var focusField = null;
            var i = 0;
            var fields = new Array();
            var formName = form.getAttributeNode("name");
    sur la ligne contenant getAttributeNode("name")...
    j'ai peut etre un probleme de jar.. vous savez quel jar est en charge de la génération des js ?

  13. #13
    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
    Soit le commons-validator.jar, soit le struts.jar.

  14. #14
    Membre confirmé Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Par défaut
    Résolu !!

    Pour explication, dans struts 1.1 il faut définir les methodes javascript DANS le validator-rules.xml.

    Par exemple, pour la contrainte 'required', il faut définir de la sorte :

    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
     
     <validator name="required"
                     classname="org.apache.struts.util.StrutsValidator"
                     method="validateRequired"
                     methodParams="java.lang.Object,
                                   org.apache.commons.validator.ValidatorAction,
                                   org.apache.commons.validator.Field,
                                   org.apache.struts.action.ActionErrors,
                                   javax.servlet.http.HttpServletRequest"
                     msg="errors.required">
             <javascript><![CDATA[
                function validateRequired(form) {
                    var bValid = true;
                    var focusField = null;
                    var i = 0;
                    var fields = new Array();
                    oRequired = new required();
     
                    for (x in oRequired) {
                        if ((form[oRequired[x][0]].type == 'text' || form[oRequired[x][0]].type == 'textarea' || form[oRequired[x][0]].type == 'select-one' || form[oRequired[x][0]].type == 'radio' || form[oRequired[x][0]].type == 'password') && form[oRequired[x][0]].value == '') {
                           if (i == 0)
                              focusField = form[oRequired[x][0]];
     
                           fields[i++] = oRequired[x][1];
     
                           bValid = false;
                        }
                    }
     
                    if (fields.length > 0) {
                       focusField.focus();
                       alert(fields.join('\n'));
                    }
     
                    return bValid;
                }]]>
             </javascript>
          </validator>

    Voila

    Ca marche !!
    encore merci c_nvy

  15. #15
    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
    Donc, ce matin, je n'avais pas tort en disant :
    Citation Envoyé par c_nvy
    Sinon, as-tu vérifié que le Validator fonctionne bien comme on te le décrit avec la Struts 1.1 ?
    De rien jeb001.

  16. #16
    Membre confirmé Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Par défaut
    non tu n'avais pas tort !!



  17. #17
    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


    N'oublie pas le tag

  18. #18
    Membre confirmé Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Par défaut

    Résolu !

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

Discussions similaires

  1. ReferenceError: ma fonction is not defined
    Par wperle dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/09/2013, 20h38
  2. Fonctions JS "not defined" et "syntax error"
    Par ffbb dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/08/2010, 21h50
  3. Erreur Javascript " mafonction is not definie"
    Par kweb13 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/12/2007, 18h51
  4. Existe-t-il une fonction if not define
    Par phoque.r dans le forum Langage
    Réponses: 2
    Dernier message: 12/04/2007, 14h02
  5. Réponses: 3
    Dernier message: 19/10/2006, 21h51

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