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 :

[DOM] Submit() avec href, IE7/Firefox


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Par défaut [DOM] Submit() avec href, IE7/Firefox
    Dernièrement, j'ai rencontré un problème avec la compatibilité entre mes formulaires, IE7 et Firefox.

    La syntax de base pour le DOM fonctionne sur Firefox, mais pas sur IE7:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:document.forms.form3.submit();" class="DetailsLink">
    Pourquoi??

    J'ai finalement remarqué, avec IE DOM Inspector, que IE7 détectait seulement les 3 premiers formulaires de ma page et ignorais le quatrième (form3). Bizarre jusqu'ici. J'ai décidé de m'amuser et d'insérer un cinquième formulaire (avant le quatrième et non après). Résultat : IE7 détecte mon quatrième formulaire, mais non mon cinquième. Pour évité des conflits, j'ai caché le cinquième formulaire :

    <form name="form4" style="display:none;"><input name="" type="hidden" value=""></form>

    S'il n'y a pas de "input" dans le formulaire "form4" (celui que j'ai ajouté), IE7 ne detecte pas le 4ème et 5ème. Bizarre.

    Grâce à ce bricolage de code, j'ai une compatibilité IE7/Firefox.

    Voilà le script final (tronqué biensûr):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form name="form"><input></form>
    <form name="form1"><input></form>
    <form name="form2><input></form>
    <form name="form4" style="display:none;"><input></form> (celui ajouté)
    <form name="form3"><input></form>
    <a href="javascript:document.forms.form3.submit();" class="DetailsLink">
    Autres solutions??
    J'ai vraiment tout essayé

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Par défaut
    Bonjour

    Une autre solution, c'est d'utiliser la syntaxe suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms["form3"].submit();
    (glop)
    ou alors, a la rigueur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.form3.submit();
    (pas glop)

    Mais la tienne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms.form3.submit();
    me chiffonne un peu


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  3. #3
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    au choix
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    document.form3.submit()
    document.forms["form3"].submit()
    document.forms[3].submit()

  4. #4
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Par défaut
    prem's lol !


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Je rajouterais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('idduform').submit();

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Par défaut Vrai problème
    Merci de vos réponses, mais je les aies toutes essayées.

    Le vrai problème, c'est la détection des formulaires de la page HTML.

    IE7 détecte 3 form sur 4 et quand j'ajoute un form entre le 3 et 4, il détecte les form 1, 2, 3 ,4 mais pas le cinquième(celui ajouté entre le 3 et 4).

    J'ai fait le test avec IE DOM Inspector.

    Le javascript ne voyait pas mon formulaire 4 avant que j'ajoute le 5...

    D'autres solution ??

  7. #7
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    <!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
    <!ATTLIST FORM
    %attrs; -- %coreattrs, %i18n, %events --
    action %URI; #REQUIRED -- server-side form handler --
    method (GET|POST) GET -- HTTP method used to submit the form--
    enctype %ContentType; "application/x-www-form-urlencoded"
    accept %ContentTypes; #IMPLIED -- list of MIME types for file upload --
    name CDATA #IMPLIED -- name of form for scripting --
    onsubmit %Script; #IMPLIED -- the form was submitted --
    onreset %Script; #IMPLIED -- the form was reset --
    accept-charset %Charsets; #IMPLIED -- list of supported charsets --
    >
    un formulaire n'a pas de style.

    mets le formulaire dans un calque.

  8. #8
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Par défaut
    Tu devrais peut-etre mettre le code ta page, "qu'on voie"


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  9. #9
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Citation Envoyé par Matthieu2000 Voir le message
    un formulaire n'a pas de style.

    mets le formulaire dans un calque.
    Quelle est la DTD que tu as lue ?

    Au passage, ils ont bien un style, cet attribut est appelé par : %coreattrs.

    Sinon, le form n'aurait pas d'id non plus ...

    La ligne :

    %attrs; -- %coreattrs, %i18n, %events --
    ajoute toutes les attributs contenus dans la variablea %attrs; qui elle-même contient l'appel des trois commentées à côté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!ENTITY % attrs "%coreattrs; %i18n; %events;">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <!ENTITY % coreattrs
     "id          ID             #IMPLIED  -- document-wide unique id --
      class       CDATA          #IMPLIED  -- space-separated list of classes --
      style       %StyleSheet;   #IMPLIED  -- associated style info --
      title       %Text;         #IMPLIED  -- advisory title --"
      >
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!ENTITY % i18n
     "lang        %LanguageCode; #IMPLIED  -- language code --
      dir         (ltr|rtl)      #IMPLIED  -- direction for weak/neutral text --"
      >
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!ENTITY % events
     "onclick     %Script;       #IMPLIED  -- a pointer button was clicked --
      ondblclick  %Script;       #IMPLIED  -- a pointer button was double clicked--
      onmousedown %Script;       #IMPLIED  -- a pointer button was pressed down --
      onmouseup   %Script;       #IMPLIED  -- a pointer button was released --
      onmouseover %Script;       #IMPLIED  -- a pointer was moved onto --
      onmousemove %Script;       #IMPLIED  -- a pointer was moved within --
      onmouseout  %Script;       #IMPLIED  -- a pointer was moved away --
      onkeypress  %Script;       #IMPLIED  -- a key was pressed and released --
      onkeydown   %Script;       #IMPLIED  -- a key was pressed down --
      onkeyup     %Script;       #IMPLIED  -- a key was released --"
      >

  10. #10
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    ajoute dynamiquement un input type submit en visibility hidden sur ton form ajouté, cela devrait rappeler à IE qu'il a un form de plus ...
    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 !

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

Discussions similaires

  1. submit avec href
    Par silent_murder dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 26/05/2010, 15h21
  2. Transormer un lien bouton submit avec nom et valeur ?
    Par boteha dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 20/02/2005, 19h23
  3. [vbscript][DOM]pb avec getElementsByTagName...
    Par toyyo dans le forum APIs
    Réponses: 2
    Dernier message: 16/02/2005, 16h56
  4. Formulaire et bouton submit avec image mapée
    Par dody dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/12/2004, 16h00
  5. Menu CSS avec bordures - fonctionne firefox, pas ie
    Par Romalafrite dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 21/11/2004, 15h40

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