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 :

bouton qui lance le formulaire malgre un javascript


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut bouton qui lance le formulaire malgre un javascript
    Bonjour,

    J'ai un souci avec un de mes formulaires.
    J'ai active un bouton par un petit javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script type="text/javascript">
        function Enter(evt) {
            if (evt.keyCode == 13) {
                document.getElementById("ctl00_imbSearch").click();
                evt.returnValue = false;
                return false;
            }
            else {
                return true;
            } 
        };
    </script>
    Voila le bouton en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form id="form2" runat="server">
        <input onkeypress="return Enter(event);" type="text" ID="Text1" runat="server" />
        <asp:ImageButton ID="imbSearch" ImageUrl="~/Images/search.jpg" runat="server" OnClick="imbSearch_Click" />
    </form>
    Sous Ie tout se passe bien : lorsque je clique sur le bouton ou que j'appuie sur entree dans le champ de texte, mon evenement se lance.
    Sous Firefox j'ai un chtit souci : sur un autre Textearea, si j'ai le malheur de faire entree, il me lance l'evenement du imbSearch.click().

    Savez-vous pourquoi ? Comment y remedier ?



    PS : j'espere etre dans la bonne section, y a du html, du javascript et de l'asp.net dans mon bidule. Resultat je sais plus ou poster

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="form2" runat="server" onsubmit="méthodeaapelerici">

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Merci !
    Euh j'ai tente un return false pour empecher cette methode mais ca me coupe tous les evenements de la page du coup

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    ^^ =>

    Au submit, tu dois récupérer soit l'évènement qui a lancer le submit ( le click sur un le bouton, sinon c'est la pression sur la touche entrée )

    et tu return true uniquement si l'utilisateur a appuyé sur le bouton ...

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    J'ai essaye un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type="text/javascript">
         function avoidEnter(evt) {
             if (evt.keyCode == 13) {
                 alert("coucou");
                 evt.keyCode = 0;
                 evt.returnValue = true;
                 return true;
             }
             else {
                 alert("coucou!");
                 return false;
             }
         }
    </script>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="form1" onsubmit="return avoidEnter(event);" runat="server">
    Mais aucune alerte ne se lance jamais.

    Je precise par ailleurs que ma page est plus complexe que ce que j'ai poste : updatePanel, modalpopupextender.

    C'est d'ailleurs sur cette derniere qu'est le probleme. si je fais entree dans un de ses champs de texte, paf il me lance l'action d'un autre champ de texte ailleurs dans la page.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Mon code marchait ...

    En fait c'est la derniere mise a jour de firebug qui inhibait un control ajax.

    Ne prenez donc pas la 1.4 0a30 !



    Merci pour ta reponse Le_chomeur, me reste plus qu' a resoudre un souci auquel je n'avais pas pense : en faisant ca je desactive egalement le saut de ligne des TextArea en Multiline.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Lors d'un onkeypress du formulaire, y a-t-il un moyen de recuperer l'id de l'element sur lequel j'etais quand j'ai presse une touche ?

  8. #8
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tonform.onkeypress= function (e) { 
     if (window.event) e = window.event; 
     var srcEl = e.srcelement? e.srcelement : e.target;
    }
    srcEl te renvois l'élément sur lequel tu auras pressé une touche

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Qu'un truc a dire : c'est au poil !
    Un grand merci a toi

    Voila ce que ca donne :

    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
    <script type="text/javascript">
        function avoidEnter(truc, evt) {
            if (evt.keyCode == 13) {
                var srcEl = evt.srcelement ? evt.srcelement : evt.target;
                if (srcEl.rows) {
     
                    return true;
                }
                return false;
            }
            else {
                return true;
            }
        };
    </script>

  10. #10
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    j'aurais plutôt fait :

    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
    <script type="text/javascript">
        function avoidEnter(truc, evt) {
            if (evt.keyCode == 13) {
                var srcEl = evt.srcelement ? evt.srcelement : evt.target;
                if (srcEl.type == 'textarea') {
     
                    return true;
                }
                return false;
            }
            else {
                return true;
            }
        };
    </script>
    ;-)

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Ah oui pardon j'ai oublie d'expliquer !
    Je voulais te poser cette question d'ailleurs. Moi je veux que ca ne marche que pour les textarea ou un saut de ligne est autorise.

    Donc je cherchais un truc dans le DOM pour ca et rows me semblait approprie.

    Le .type marchera-t-il dans ce cas-ci ?


    Le meilleur moyen c'est de tester ... zou !

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Ok j'ai rien dit

    C'est du au fait que mon control asp cree un input de type text si je precise pas le TextMode="MultiLine", c'est ca ?

  13. #13
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    tout compris ^^

    en asp.net , l'input ne sera remplacé par une textarea QUE si tu indique multiline

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

Discussions similaires

  1. bouton qui lance une fonction javascript
    Par tanny33 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 05/04/2011, 16h14
  2. creer un bouton qui lance des requetes en fonction d'une colonne
    Par akdmks dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/12/2007, 17h41
  3. bouton qui lance une apllication via un script
    Par yamnetouaga dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 26/02/2007, 11h57
  4. Réponses: 10
    Dernier message: 05/03/2006, 11h51
  5. Réponses: 1
    Dernier message: 22/09/2005, 16h15

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