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

Symfony PHP Discussion :

[Form] Impossible de rajouter un attribut name au bouton submit [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut [Form] Impossible de rajouter un attribut name au bouton submit
    Bonjour,

    Afin d'accéder au bouton submit depuis un javascript j'ai besoin de lui donner un nom par l'attribut html "name".

    Problème: le composant formulaire m'en empêche en me disant: "This form should not contain extra fields." lors de la vérification de la validité du formulaire.

    Code qui marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <FORM action="{{ path('mon_path') }}" method="post">
          {{ form_errors(form) }}
                <inputtype="submit" class="uneClasse" >
          {{ form_rest(form) }}
    </FORM>
    Code qui ne marche plus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <FORM action="{{ path('mon_path') }}" method="post">
          {{ form_errors(form) }}
                <inputtype="submit" class="uneClasse" name="unNom">
          {{ form_rest(form) }}
    </FORM>
    Comment se fait-il que je ne puisse pas donner un name à ce bouton sans déclencher une erreur de validation?

    C'est moi ou le composant formulaire est une usine à gaz mal pensée?

    Note: la version 2.3 de symfony permet de rajouter un bouton directement dans le formulaire mais je suis sous 2.2.

    Merci pour votre aide,
    Mages

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 60
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    Peut-être en utilisant une balise <button> plutôt qu'une <input>.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Merci mais j'ai déjà essayé. Même sentence...

  4. #4
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    et en passant par l'ID ? au lieu de name

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Super, ça marche nickel avec l'ID. Merci beaucoup pour l'idée. Je suis nouveau en javascript donc je n'ai pas pensé à cette possibilité que je n'avais jamais utilisée auparavant.

    Je ne comprends toujours pas pourquoi Symfony empêche de mettre un attribut name (pour contrer une faille de sécurité liée à cet attribut peut-être...) mais ça résout mon problème.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Pour ceux qui débuteraient comme moi en javascript il faut faire:

    Dans le fichier HTML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <FORM action="{{ path('mon_path') }}" method="post">
          {{ form_errors(form) }}
                <input id="submitbuttonid" type="submit" class="uneClasse" >
          {{ form_rest(form) }}
    </FORM>
    Et dans le code javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        var mySubmitButton = document.getElementById("submitbuttonid");
        mySubmitButton.style.display = "none";
    Dans cet exemple je fais disparaître le bouton mais on peut accéder à tous les paramètres de l'élément HTML au besoin.

  7. #7
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    si tu débute javascript je te conseil fortement d'utiliser jQuery.

    Jquery est une sorte de framework et comme tout bon framework le but est de simplifier la vie, gagner du temps, compatibilité, ...
    biensur va falloir un temps d'apprentissage que tu gagnera au final durant X annèe.
    et de plus tout le monde utilise jQuery


    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     var mySubmitButton = document.getElementById("submitbuttonid");
        mySubmitButton.style.display = "none";
    en jQuery :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $("#mySubmitButton").css('display', 'none');

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Je vais me pencher là-dessus alors. Merci.

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

Discussions similaires

  1. [CakePHP] Modification automatique attribut name dans Form
    Par FadeToBlack dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/06/2013, 22h09
  2. struts <html:form/> attribut name et type
    Par hiddouche dans le forum Struts 1
    Réponses: 1
    Dernier message: 01/03/2010, 15h43
  3. [Débutant] Problème <html:form> et attribut "name"
    Par takinelinfo dans le forum Struts 1
    Réponses: 2
    Dernier message: 14/12/2008, 14h18
  4. Pb attribut name pour un form
    Par mariemor64 dans le forum Struts 1
    Réponses: 2
    Dernier message: 04/07/2006, 12h12
  5. Balise form - problème attributs name et type
    Par michihala dans le forum Struts 1
    Réponses: 3
    Dernier message: 03/04/2006, 17h17

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