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 fonctionne plus


Sujet :

JavaScript

  1. #1
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut onSubmit qui ne fonctionne plus
    Bonjour

    Pour une raison que j'ignore, ce bout de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onSubmit="document.form.submit();"
    ne fonctionne plus sur mes formulaires input, je suis obligé de mettre un bouton submit pour pouvoir envoyer les données du formulaire.

    J'ai bien vérifié que le formulaire s'appelle form, et que la balise n'est pas fermée.

    Ceci n'arrive que sur un de mes sites, mais pas sur d'autres. Les autre évènements similaire (onclick, onchange) fonctionnent très bien. J'utilise IE6 (comme tous mes utilisateurs).

    Qu'est ce qui peut bien désactiver ce comportement ?

    Merci d'avance

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par guidav Voir le message
    Pour une raison que j'ignore, ce bout de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onSubmit="document.form.submit();"
    ne fonctionne plus
    ce que j'ignore moi, c'est pourquoi cette tentative ?

    Il te suffit d'enlever l'attribut onsubmit pour résoudre ton problème ...

    Ou de lui faire faire un simple "return true;" si tu dois/veux absolument le conserver ...

    A+

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    J'avoue être aussi dubitatif que E.Bzz quant à l'utilité de cette ligne

    Ce qu'il faut savoir, c'est que onsubmit n'est pas déclenché quand tu appelles par script l'événement submit().

    Ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onSubmit="document.form.submit();"
    form étant une propriété native de JavaScript désignant le formulaire contenant l'élément, je pense que tu cherches à valider le formulaire qui contient document
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Merci de ta réponse. Je ne sais pas pourquoi ce code est là, sans doute un vestige du passé. J'avais essayé de le retirer, mais ça ne fonctionne pas non plus.
    Le onsubmit est implicite dans un input de type text ?

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par guidav Voir le message
    Le onsubmit est implicite dans un input de type text ?
    Heu ... désolé je comprends pas ça non plus

    Le onsubmit est lié au formulaire lui-même, pas à un de ses éléments ...

    Il serait plus simple que tu nous décrives le comportement que ton formulaire devrait avoir (le code du <form> aiderait )

    EDIT : au fait : il est bien dans la balise <form> ce onsubmit ??

    A+

  6. #6
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Disons que dans un <select> ou un <input type=checkbox>, il faut soit un bouton submit, soit un évènement onChange pour valider le formulaire.
    Pour un <input type=text>, la touche entrée suffit à valider le formulaire. Sur mon site, la touche entrée semble ne plus avoir d'action.

    Je veux bien poster le code, mais c'est très long et touffu, ça n'aiderait probablement pas.

    Comme je le disais, j'ai bien vérifié que la balise <form> n'est pas fermée avant l'input !

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par guidav Voir le message
    Disons que dans un <select> ou un <input type=checkbox>, il faut soit un bouton submit, soit un évènement onChange pour valider le formulaire.
    Pour un <input type=text>, la touche entrée suffit à valider le formulaire. Sur mon site, la touche entrée semble ne plus avoir d'action.
    Oula !
    Je crois qu'il faut être plus précis :
    on ne met pas un bouton submit "dans" un select ou une checkbox ...
    Un onchange en soi ne valide pas un formulaire ...
    La touche Entrée n'a pas d'effet sur un input "text" : elle a un effet sur le form, pour peu que celui-ci possède un bouton submit (et que le focus soit sur un des éléments du form) ...
    Citation Envoyé par guidav Voir le message
    Je veux bien poster le code, mais c'est très long et touffu, ça n'aiderait probablement pas.
    Je pense que si

    A+

  8. #8
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Si j'ai bien compris, vous êtes dans votre champ texte, vous encodez un texte puis vous tapez sur Enter pour envoyer le formulaire.

    Mais, c'est le cas également avec les checkbox et les select.


    EDIT: Ha non, ce n'est pas le cas avec les select et les checkbox. Pardon.
    Mais c'est bien ce que vous pensiez pour les input text. Le Enter envoie le formulaire.
    Il va donc peut-être falloir montrer le code...

  9. #9
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Merci de prendre du temps pour moi.

    Après pas mal d'élagage, voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form name=form action="" method=GET >
    Opé/ISIN:<input style="border:1px solid;font-size=9" type=text size=8 name=ope_menu value="" onSubmit="document.form.submit();" />
    Debug SQL<input type=checkbox name=debug_SQL onClick="document.form.submit();">
    mef<input type=checkbox name=debug_SQL_pre onClick="document.form.submit();">
    vars<input type=checkbox name=debug_vars onClick="document.form.submit();">
    <input type=hidden name=page value=gesco_dossier.php >
    <input style="border:1px solid" type=text size=12 name="gesco_dossier" value=""/></form></form>
    Dans le site, le premier input type=text fonctionne bien, mais pas le second. La balise est fermée 2 fois, c'est mal mais pas grave normalement, je cherche pas à avoir du html valide à tout prix.

    Cependant, j'ai testé ce bout de code directement en html, et ça ne donne rien pour aucun des input text, mais ça marche avec les input checkbox

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Donc, sans le code il aurait été impossible de te répondre ...

    Citation Envoyé par E.Bzz Voir le message
    EDIT : au fait : il est bien dans la balise <form> ce onsubmit ??
    onsubmit => onchange

    Malgré ça, le problème avec ton formulaire, c'est qu'il est impossible de le remplir complétement : à la moindre saisie, tu l'envoies (soi saisie d'un texte, soit clic sur une checkbox).
    C'est le but ?

    EDIT : et tu as 2 </form>

    A+

  11. #11
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    La valeur de chaque attribut HTML doit être entre quottes ...

    A+

  12. #12
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Oui c'est bien le but, l'envoi pour chaque élément est exprès, le code est très condensé ici mais on recharge bien toute la page à chaque action.

    Je ne vois pas le problème sur le onsubmit/onchange : j'ai bien des onchange pour mes attributs <select> (il peut aussi y en avoir dans mon formulaire), mais pour les inputs, on peut mettre un onsubmit non ?

    Surtout, je ne comprends pas pourquoi le premier input text fonctionne comme attendu et pas le second.

    Merci

    Citation Envoyé par E.Bzz Voir le message
    Donc, sans le code il aurait été impossible de te répondre ...


    onsubmit => onchange

    Malgré ça, le problème avec ton formulaire, c'est qu'il est impossible de le remplir complétement : à la moindre saisie, tu l'envoies (soi saisie d'un texte, soit clic sur une checkbox).
    C'est le but ?

    EDIT : et tu as 2 </form>

    A+

  13. #13
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Un onsubmit ne peut se trouver que dans une balise <form> ...

    Mais tu fais comme tu veux

    A+

  14. #14
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Je les ai retirés, merci ! Mais ça ne marche toujours pas.
    J'ai fait des tests qui m'amènent à penser que s'il y a un seul <input type="text">, ça marche, mais que s'il y en a 2 (même avec des name différents), ça ne marche pas. Ca dit quelquechose à quelqu'un ?

  15. #15
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    Si à présent il n'y a plus aucun 'onsubmit' sur des <input>, essaie 'document.forms['form'].submit();' ou 'document.forms.form.submit();'
    (j'ai souvenir de certains navigateur qui ne monte pas le nom du formulaire au document).

    Comme tu n'as pas de bouton type=submit, un 'onsubmit="return true";' sur le form devrait avoir une utilité.

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    lorsque l'on lance un submit de form dynamiquement il faut savoir qu'il ne passe pas par le onsubmit ...

    onsubmit qui n'est qu'un evenement dans la pile chronologique du click sur un bouton submit de form.
    Le onsubmit permet de lancer une fonction avant l'envoi du for et l'on s'en sert souvent pour bloquer l'envoi du form avec une fonction qui retourne true ou false

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return tureoufalse()"
    mais même si il existe un onsubmit celui ci ne sera pas lancé par un appel dynamique au submit du form (une curiosité encore de js)
    il faut donc faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(document.forms['myform'].onsubmit())[document.forms['myform'].submit()}
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #17
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Ce qu'il faut savoir, c'est que onsubmit n'est pas déclenché quand tu appelles par script l'événement submit().
    Je m'auto-quote
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  18. #18
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    ben en même temps c'est samedi matin et le café n'est pas encore arrivé au cerveau
    désolé Beef
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  19. #19
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    ben en même temps c'est samedi matin et le café n'est pas encore arrivé au cerveau
    Tu devrais passer à la bière, ça monte plus vite
    désolé Beef
    Y a pas de mal, au contraire, puisque ma remarque n'avait apparemment pas été notée
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  20. #20
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Merci à tous pour vos réponses. J'ai compris pas mal de choses, mais je n'ai pas la solution de mon problème, qu'on peut reformuler ainsi :
    Est-il possible (avec IE6) d'avoir 2 input de type text dans un même formulaire sans utiliser de bouton submit, mais uniquement la touche entrée ?
    Si ce n'est pas possible, j'ajouterai un submit, mais j'aimerais bien m'en passer.

    Merci d'avance.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Codes qui ne fonctionne plus
    Par FCL31 dans le forum VBA Access
    Réponses: 18
    Dernier message: 08/11/2007, 16h25
  2. [Problème Matériel] Alimentation qui ne fonctionne plus
    Par kromartien dans le forum Composants
    Réponses: 15
    Dernier message: 26/03/2007, 20h10
  3. imprimante qui ne fonctionne plus
    Par flo456 dans le forum Hardware
    Réponses: 5
    Dernier message: 01/09/2006, 18h35
  4. function qui ne fonctionne plus après fractionnement Base
    Par Daniel MOREAU dans le forum Access
    Réponses: 1
    Dernier message: 25/05/2006, 21h37
  5. Forum qui ne fonctionne plus
    Par vins25 dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 18/02/2006, 18h54

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