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
    Points : 2
    Points
    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
    Points : 1 978
    Points
    1 978
    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

  3. #3
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    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
    Points : 1 978
    Points
    1 978
    Par défaut
    prem's lol !

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 905
    Points : 14 822
    Points
    14 822
    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
    Points : 2
    Points
    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 émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    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
    Points : 1 978
    Points
    1 978
    Par défaut
    Tu devrais peut-etre mettre le code ta page, "qu'on voie"

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 905
    Points : 14 822
    Points
    14 822
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    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 ...

+ 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, 16h21
  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, 20h23
  3. [vbscript][DOM]pb avec getElementsByTagName...
    Par toyyo dans le forum APIs
    Réponses: 2
    Dernier message: 16/02/2005, 17h56
  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, 17h00
  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, 16h40

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