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 :

onSubmit qui ne se déclenche pas


Sujet :

JavaScript

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut onSubmit qui ne se déclenche pas
    Pour une raison qui m'échappe (et j'ai pourtant creusé) l'évenement onSubmit d'un de mes formulaire ne se déclenche pas (ne lance pas la fonction attendue).

    Voici le code

    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
     
     
    [...]
     
    <script language="javascript1.3">
    <!--
    function md5Password() {
    	alert("yo");
    	alert(document.getElementById("tmppassword").value.length);
    	if (document.getElementById("tmppassword").value.length > 1) {
    		document.getElementById("password").disabled = false;
    	} else return;
     
    	if (check_format_usrpass(document.getElementById("tmppassword").value)) {
    		document.getElementById("password_ok").value = 1;
    		return;
    	}
     
    	document.getElementById("password").value = hex_md5(document.getElementById("tmppassword").value);
    }
    -->
    </script>
     
    [...]
     
    <form method="POST" onSubmit="md5Password();" action="/MEMBRES_MEMBRE_STAFF.php?membreOID=2">
    <input type="hidden" name="specialAction" alue="MEMBRE_STAFF_MOD.php">
    <input name="membreOID" type="hidden" value="2">
    Nom :
    <input name="nom" type="text" value="Sergejack" size='20' maxlength='20'	>	<br>
    Email :
    <input type="text" name="email" value='----@gmail.com' size='60' maxlength='60' >
    <input name="password_ok" type="hidden" id="password_ok" value="0">
    <input name="password" type="hidden" id="password" disabled>
    <input type="submit" name="button" value="MODIFIER">
    </form>
    <br>
    Mot de passe :
    <input name="tmppassword" type="password" id="tmppassword" size="20" maxlength="20">
     
    [...]

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    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
    
    [...]
    
    <script language="javascript1.3">
     <!--
    function md5Password() {
        alert("yo");
        alert(document.getElementById("tmppassword").value.length);
        if (document.getElementById("tmppassword").value.length > 1) {
            document.getElementById("password").disabled = false;
        } else return;
        
        if (check_format_usrpass(document.getElementById("tmppassword").value)) {
            document.getElementById("password_ok").value = 1;
            return;
        }
        
        document.getElementById("password").value = hex_md5(document.getElementById("tmppassword").value);
    }
     -->
    </script>
    
    [...]
    
    <form method="POST" onsubmit="md5Password();" action="/MEMBRES_MEMBRE_STAFF.php?membreOID=2">
    <input type="hidden" name="specialAction" alue="MEMBRE_STAFF_MOD.php">
    <input name="membreOID" type="hidden" value="2">
    Nom :
    <input name="nom" type="text" value="Sergejack" size='20' maxlength='20'    >    <br>
    Email :
    <input type="text" name="email" value='----@gmail.com' size='60' maxlength='60' >
    <input name="password_ok" type="hidden" id="password_ok" value="0">
    <input name="password" type="hidden" id="password" disabled>
    <input type="submit" name="button" value="MODIFIER">
    </form>
    <br>
    Mot de passe :
    <input name="tmppassword" type="password" id="tmppassword" size="20" maxlength="20">
    [...]
    En rouge, les erreurs (si ce n'est pas une mauvaise copie de ton code)
    En bleu, ce qu'il serait préférable de mettre
    <!-- peut etre que ce n'est qu'un oublie mais si tu laisses ta fonction en commentaire elle risque pas de fonctionner
    Sinon penses à utiliser la console javascript qui est un parfait outil de recherche d'erreurs

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    le v de valure a été coupé par ma main lors de la copie, remise en page du code (généré en php avec plein de retour à la ligne qui nuissent à la lisibilité).

    Quant aux <!-- et -->, ceux là n'ont jamais été un problème, c'est dreamweaver qui les ajoutaient et j'ai gardé cette pratique (apparement ce serait plus propre pour certains navigateurs ne supportant pas JS, il en va de même pour l'utilisation de CSS).

    D'ailleurs je peux lancer la fonction à partir de l'évennement onclick du boutton de submit.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    Personne n'a la moindre idée d'une solution ou d'une façon de retrouver la source du problème ?

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Apporter une solution à problème inexistant n'est pas simple : dans le code que tu donnes, l'évènement 'onsubmit' se déclenche correctement.

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    J'ai trouvé le problème.

    Plus haut il restait une balise <form [...]> non fermée, vestige d'un code modifié.
    Curieux que le seul symptôme apparent soit cela.

    Ça a sa place dans la FAQ je crois.

  7. #7
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    La faute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form>
    <form action="page.aspx">
    </form>
    est modifiée par le navigateur en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form>
    <form action="page.aspx">
    </form>
    </form>
    Comme deux formulaires sont enchassés, celui de niveau supérieur est considéré comme principal et celui de dessus n'est plus utilisé, ce qui renvient à écrire

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    Citation Envoyé par FremyCompany
    La faute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form>
    <form action="page.aspx">
    </form>
    est modifiée par le navigateur en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form>
    <form action="page.aspx">
    </form>
    </form>
    Comme deux formulaires sont enchassés, celui de niveau supérieur est considéré comme principal et celui de dessus n'est plus utilisé, ce qui renvient à écrire

    Non puisque l'action de la valeur forme était bien respectée.

  9. #9
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    alors c'est que les navigateurs ont clos les balises autrement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form></form>
    <form action="page.aspx"></form>
    Mais dans ce cas, ca ne peut pas avoir d'influence sur le JS...

    Au fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return md5password()"

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    Citation Envoyé par FremyCompany
    alors c'est que les navigateurs ont clos les balises autrement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form></form>
    <form action="page.aspx"></form>
    Mais dans ce cas, ca ne peut pas avoir d'influence sur le JS...

    Au fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return md5password()"
    C'est non conforme à la norme l'abscence d'un retour true/false ?

  11. #11
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Je sais pas si c'est non conforme, mais si tu return rien, le formulaire part
    sur IE6, FireFox, Opera et Netscape. Mais je pense qu'il vaut mieux faire
    un return systématiquement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onsubmit="md5password(); return true;"
    Car md5password() ne retourne ni true, ni false

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

Discussions similaires

  1. [SWING] Evenement qui ne se déclenche pas
    Par LordBob dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 15/06/2006, 15h57
  2. Evènement qui ne se déclenche pas
    Par max.lille dans le forum Langage
    Réponses: 8
    Dernier message: 09/05/2006, 15h46
  3. onmouseover qui ne se déclenche pas sous IE...
    Par narnou dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/03/2006, 17h26
  4. Un JOB qui ne se déclenche pas
    Par blids dans le forum Oracle
    Réponses: 15
    Dernier message: 09/02/2005, 21h14
  5. [trigger] ... qui ne se déclenche pas
    Par bozo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/01/2004, 11h31

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