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

JavaScript Discussion :

[POO] Code sur onSubmit


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Points : 224
    Points
    224
    Par défaut [POO] Code sur onSubmit
    Bonjour,

    J'ai un soucis avec le code test suivant au niveau du onSubmit du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form name="frmtest" action="ericessai.php" method="get" onSubmit="this.cache.value='b';">
    <input type="text" name="cache" value="a">
    <input type="text" name="texte" value="essai" />
    <input type="button" value="Valider" onclick="this.form.submit();">
    <input type="submit" value="Envoyer">
    </form>
    Si je valide le formulaire avec le bouton Envoyer (type submit), la valeur de "cache" passe bien à "b"
    Mais si je valide le formulaire avec le bouton Valider (type button), la valeur de "cache" reste à "a"



    Y a rien dans la FAQ à ce sujet (les différences entre un bouton submit et un form.submit() ), d'ailleurs

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 93
    Points : 111
    Points
    111
    Par défaut
    salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    <div style="text-align: left;"><form name="frmtest" action="ericessai.php" method="get" onSubmit="this.cache.value='b';">
    <input type="text" name="cache" value="a">
    <input type="text" name="texte" value="essai" />
    <input type="button" value="Valider" onclick="this.cache.value='b';this.form.submit();">
    <input type="submit" value="Envoyer">
    </form></div>

  3. #3
    Membre actif Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Points : 224
    Points
    224
    Par défaut
    Salut,

    Merci, c'est ce à quoi j'avais pensé au départ mais, en fait, j'ai beaucoup de boutons et tous ont cette même action.
    Donc je voudrais éviter de dupliquer cette commande sur tous mes boutons

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 93
    Points : 111
    Points
    111
    Par défaut
    alors tu crée une fonction js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    function valider(){
    document.ton_form.cache.value='b';
    document.ton_form.submit();
    }
    et tu l'appelles comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    <div style="text-align: left;"><form name="frmtest" action="ericessai.php" method="get" onSubmit="this.cache.value='b';">
    <input type="text" name="cache" value="a">
    <input type="text" name="texte" value="essai" />
    <input type="button" value="Valider" onclick="valider();">
    <input type="submit" value="Envoyer">
    </form></div>

  5. #5
    Membre actif Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Points : 224
    Points
    224
    Par défaut
    J'y ai songé également mais, en fait, tout ça est dans un "objet" (POO) Javascript appelé par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    ObjCorrecteur = new Correcteur("DivCorrecteur", "<?php echo $_SERVER['REQUEST_URI ']; ?>");
    ...
    ObjCorrecteur.Init();
    </script>
    C'est la méthode "Init" qui contient le code en question
    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
        function Correcteur_Init()
        {
            // Construction du DIV
    		var i;
    		var TxtHtml = "<div id='" + this.Nom + "' class='correcteur'>\n";
    		TxtHtml += "<form method='post' name='frm" + this.Nom + "' id='frm" + this.Nom + "' action='" + this.Cible + "'>\n";
    [...]
            // Insertion des boutons
            TxtHtml += "<p class='boutons'>\n";
    		for(i = 0; i < this.tabBoutons.length; i++)
    		{
                // Construction de la chaine du OnClick
                StrClick = "";
                StrJS = "this.form.Scroll.value=document.body.scrollTop;this.form.Action.value=this.value;this.form.submit();";
                StrFin = "";
    [...]
                TxtHtml += "<input type='button' onclick='" + StrClick + StrJS + StrFin + "' value='" + this.tabBoutons[i][0] + "' />\n";
    		}
    		TxtHtml += "<input type='button' onclick='document.getElementById(\"" + this.Nom + "\").style.display=\"none\";' value='Annuler' />\n";
            TxtHtml += "</p>\n";
    		TxtHtml += "</form>\n";
    		TxtHtml += "</div>";
    		
    		document.write(TxtHtml);
        }
    C'est la partie en rouge qui est commune à tous les boutons et que je voudrais centraliser.

    Comme tu peux le voir, ce code est appelé dans un <script type="text/javascript">
    Déjà que je suis étonné que le document.write s'écrive bien dans la partie html et non dans la partie Javascript (mais ça c'est peut-être qu'à force de manipuler des include en php, je ne sais plus trop comment fonctionne document.write ), alors je ne vois pas vraiment comment je pourrais lui demander d'insérer une fonction Javascript.
    Ou alors en définissant une autre méthode ? Mais comment l'appeler alors sur des élement (input) qui n'existent pas encore ?

Discussions similaires

  1. [POO] Avis sur la Lisibilité du code
    Par redsaint0 dans le forum Langage
    Réponses: 7
    Dernier message: 12/03/2007, 21h09
  2. Tester son code sur divers navigateurs
    Par benassis dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 22/03/2006, 13h12
  3. [excel] même code sur plusieurs feuilles
    Par sabotage dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/11/2005, 12h23
  4. Comment ecrire du code sur plusieurs lignes?
    Par tooneygirl dans le forum Access
    Réponses: 5
    Dernier message: 15/06/2005, 16h03
  5. Conseils code sur diagonalisation de matrice et autre
    Par Math75 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 23/02/2005, 14h12

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