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 :

Utiliser le 2e submit quand on appuie sur entrée


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 75
    Par défaut Utiliser le 2e submit quand on appuie sur entrée
    Salutation à tous!!

    J'ai un problème sur mon formulaire, j'ai 4 boutons submit. Le 1er sert à ajouter une ligne dans un tableau, le 2e à valider tout le formulaire, le 3e pour annuler et le 4e pour terminer. Je me suis aperçu que lorsque j'appuie sur entrée n'importe ou dans mon formulaire il prend le 1er submit alors qu'il faudrait prendre le 2e. Je me suis renseigné dessus et c'est normal sur les navigateur. J'ai donc essayé de voir si en javascript lorsque l'on appuie sur la touche entrée c'est le 2e submit qui s’exécute et pas le 1er. voici ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="form_dm" method='post' onsubmit=' ' onkeypress="if(event.keyCode==13){document.getElementById('submit_encour_mod').focus();}" action="#" enctype="multipart/form-data">
    Ca pourrai marcher car lorsque j'appuie sur entrée il met le focus sur mon 2e submit mais il appuie quand même sur le 1er. Y a t il un moyen de faire se que je veux ? Si quelqu'un pouvais m'aider je l'en remercie d'avance!

  2. #2
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 24
    Par défaut
    Bonjour,

    Pour annuler ce comportement il faut que tu mettes l'action submit uniquement sur le deuxième bouton.

    Pour résumer, voici comment tu dois déclarer tes boutons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        <input id="btn1" type="button" />
        <input id="btn2" type="submit" />
        <input id="btn3" type="button" />
        <input id="btn4" type="button" />

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 75
    Par défaut
    Merci beaucoup de ta réponse! Malheureusement c'est pas possible car chacun de mes boutons font tous des action différentes avec le PHP comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['submit_annuler'])) { }
    Et mes 2 premier submit gèrent des fichier et si je transforme le 1er submit en bouton je devrai passer par javascript et il est impossible de gérer les fichiers avec javascript (surtout lorsque l'on insère dans une BDD). Je ne peux pas du tout inverser les deux submit pour une question de lisibilité et d'ergonomie. Je suis vraiment bloqué...

  4. #4
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 24
    Par défaut
    Dans ce cas il faut que tu gardes ma solution mais que tu ajoutes du javascript aux boutons qui ne doivent pas valider de formulaire.

    Quelque chose comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <form id="myForm" method="post" action="">
        <input id="btn1" value="btn1" type="button" onclick="submit('action1')"/>
        <input id="btn2" value="btn2" type="submit" />
        <input id="btn3" value="btn3" type="button" onclick="submit('action2')"/>
        <input id="btn4" value="btn4" type="button" onclick="submit('action3')"/>
    </form>
    <script>
    function submit(action) {
        form = document.getElementByTagName("form");
        form.insertAdjacentHTML("beforeend", "<input type='hidden' name='" + action + "' />");
        form.submit();
    }
    </script>

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 75
    Par défaut
    Ca ma l'air pas mal! Mais tu crois que ça va exécuter mon code php contenu dans se type de condition:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($_POST['submit_annuler'])) { 
    //action lorsque je clique sur le submit annuler
    }
    ???

    Et tu pourrai m'expliquer ta fonction javascript ? Car je comprends pas tout désolé.

    Voici mon formulaire:

    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
    49
    50
    51
    52
    <form id="form_dm" method='post' onsubmit='' onkeypress="if(event.keyCode==13){document.form_dm.submit()}" action="#" enctype="multipart/form-data"><?php   
                                            
                                            if($droit_crea_mod_besoin_appro){
                                            // Information Générales
                                            include("formulaire/info_general/info_general_mod.php");
                                            }?>
    					<br class="br"/>
    					<?php 
                                            if($droit_gestion_elmt_commande){
                                            // Définition des devis
                                            include("formulaire/def_devis/def_devis_mod.php"); 
                                            }?>
    					<br class="br"/><?php 
                                            // Les fichiers 
                                            //include("formulaire/fichier/fichier_mod.php");?>
    					<br class="br"/>
    					<?php 
                                            if($droit_crea_mod_rec_composant){
                                            // Reception
                                             include("formulaire/reception_lot/reception_lot_mod.php");
                                             }?>
    					<br class="br"/>
    					<?php
                                            // Marquage
                                            // include("formulaire/marquage/marquage_mod.php");?>	
    					<br class="br"/>
    					<?php
                                            // Commande
                                            // include("formulaire/commande/commande_mod.php");?>
    					<br class="br"/>
    						<fieldset class="fs couleur4" >
    							<legend class="fs_legende">Suivi de modification</legend>
    							<div style="float:left;">
    								<label for="com_suivi" class="label4">Objet de la modification</label><br class="br"/>
    								<textarea id="com_suivi" name="com_suivi" rows="7" cols="30" class="textarea_3" type="text" ></textarea>
    								<br class="br"/>
     
    									<button id="submit_encour_mod" name="submit_encour_mod" formnovalidate type="submit" class="bouton_1 couleur16">Valider les modifications</button>
    									<button id="submit_encour_annule" name="submit_encour_annule" type="submit" class="bouton_1 couleur16">Annuler l'en cours</button>
    									<?php if($droit_spe_val_en_cours){?>
    									<button id="submit_encour_termine" name="submit_encour_termine" type="submit" class="bouton_1 couleur16">Terminer l'en cours</button>
    									<?php }?>
     
    								</div>
    								</div>
    						</fieldset><?php
                                            
                                            echo "<br class='br'/>";
                                            include("formulaire/suivi/suivi.php");
                                            ?>
     
    				</form>
    Pour info mon 1er submit est inclu dans cette page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include("formulaire/reception_lot/reception_lot_mod.php");

  6. #6
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 24
    Par défaut
    Le bout de js ajoute un champ caché au formulaire du nom de ton bouton puis submit le formulaire.

    Donc tu auras la variable post correspondante ($_POST['submit_annuler'])

Discussions similaires

  1. Temps quand on appuie sur un bouton
    Par makflai dans le forum LabVIEW
    Réponses: 0
    Dernier message: 14/07/2010, 12h27
  2. Réponses: 4
    Dernier message: 22/05/2008, 19h01
  3. Créer un JLabel et JComboBox quand on appuie sur un bouton
    Par maxkarting25 dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 16/05/2008, 18h26
  4. Réponses: 1
    Dernier message: 02/03/2008, 21h34
  5. Réponses: 25
    Dernier message: 18/12/2007, 22h06

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