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 :

pb de submit d'un form sous IE et Opera


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 7
    Points
    7
    Par défaut pb de submit d'un form sous IE et Opera
    Voila j'ai un petit souci, j'ai un formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="a_b_c" method="post">
    que je veux valider en JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var elm = document.getElementsByName('a_b_c');
    		alert(elm[0].name+' '+elm[0].method+' '+elm[0].action);
    		elm[0].submit();
    Bon ca marche trés bien sous Firefox, mais sous IE est opera ca ne marche pas tout le temps (notament quand seulement ces 3 lignes sont appelés), le formulaire est bien dans elm[0] et si je remplace submit par reset ca marche.
    Là j'avous être bloqué, je ne vois pas du tout où est le problème.
    Si quelqu'un a une idée....

  2. #2
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    'Soir the.chojin

    Si ce que tu nous montres de la déclaration du formulaire est réellement ce qu'il y a dans ta page, je dirais, à première vue, que ton formulaire n'a pas d'action.


    Yan
    Je piquerais bien un petit somme, mais à qui?
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Exact, mais ca ne change rien
    (sans en être sur, je crois que sans action un form boucle sur lui même, moi je fais juste de la maintenance sur ce truc )

  4. #4
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!


    Et en faisant directement appel à l'objet sans passer par une variable?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    alert(document.forms.a_b_c.name+' '+document.forms.a_b_c.method+' '+document.forms.a_b_c.action); 
    document.forms.a_b_c.submit();
    De plus, il me semble me souvenir que si tu veux faire référence à l'action d'un formulaire, tu dois initialiser la propriété dans la déclaration du formulaire, même si c'est avec une chaine vide.
    J'ai pas vérifié, c'est samedi et j'ai la flemme....


    Yan
    La nourrice montre son sein, et le pont s'affaisse
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Hi,
    merci de me répondre,
    bon je suis devant ce code, ce qui se passe, c'est que quand je fais ce code ca ne valide pas, mais le formulaire peut être validé en JS quand même (c'est fait dans une autre fonction).
    Le plus drole c'est que si je rajoute un alert aprés le submit, le formulaire sera submit mais pas rechargé, ce qu fait que quand je le recharge à la main les varialbes POST sont bien rempli et ca marche comme ca le devrait.

    Bref je ne comprend rien...

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    et l'appel de script, tu le fais où-comment?

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    J'ai une liste, avec pour chaque entrée une checkbox, on peu cocher les checkbox pour valider une action sur un ensemble de chexbox, cette partie marche.
    J'ai rajouter en plus une image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td width="20" align="center"><input type="checkbox" name="a_b_c_selection[]" value="49" ></td>
       <td width="20" align="center"><a href="javascript:void(0);" style="cursor:hand;"><img src="blabla.jpeg" width="14" height="15" border="0" onClick="debloqueOnce('49')"/></a></td>
    l'apelle de la methode debloqueOnce marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	function debloqueOnce(value) {
    		var elm = document.getElementsByName('a_b_c_selection[]');
    		indice = searchValue(elm, value);
    		if(indice != -1) {
    			elm[indice].checked = true;
    			var elm1 = document.getElementsByName('a_b_c');
                            alert(elm1[0].name+' '+elm1[0].method+' '+elm1[0].action);
                            elm1[0].submit();
    		}
     
    	}
    La case se coche bien, mais le formulaire n'est pas validé.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Bon comme je suis vraiment bloqué j'ai fait ce bout de code pour essayé de reproduire mon pb :

    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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    <script type="text/javascript">
    	function searchValue(tableau, value) {
    		for(i = 0; i < tableau.length; i++) {
    			if(tableau[i].value == value)
    				return i;
    		}
    		return -1;
    	}
     
    	function debloqueOnce(value) {
    		var elm = document.getElementsByName('a_b_c_selection[]');
    		indice = searchValue(elm, value);
    		if(indice != -1) {
    			elm[indice].checked = true;
    			 var elm1 = document.getElementsByName('a_b_c');
                 alert(elm1[0].name+' '+elm1[0].method+' '+elm1[0].action);
                 elm1[0].submit(); 
    		}
     
    	}		
    </script>
     
    <title>Document sans nom</title>
    </head>
    <body>
    <form name="a_b_c" action="" method="post">
    <input type="checkbox" name="a_b_c_selection[]" value="1" >
    <a href="javascript:void(0);" style="cursor:hand;"><img src="http://www.google.fr/intl/fr_fr/images/logo.gif" border="0" onClick="debloqueOnce('1')"/></a>
    <input type="submit" name="Submit" value="OK">
    </form>
    </body>
    </html>
    Ca ne marche que sous IE 5 et Firefox.

  9. #9
    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
    Citation Envoyé par the.chojin
    Bon comme je suis vraiment bloqué j'ai fait ce bout de code pour essayé de reproduire mon pb :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="Submit" value="OK">
    ->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="[b]autreNom[/b]" value="OK">

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Je suis sous Mac OS X donc je ne teste que sous Opera et Firefox (et IE 5, mais bon ...), et ce changement ne fais rien de plus sous Opera.

  11. #11
    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
    il faut en plus ajouter un id à ton formulaire

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Non ca ne change rien

    Voila j'ai fait ce petit bout de page pour montrer clairement le problème, quand on click sur l'image ca devrait valider le formulaire aussi, la methode de validation est la même pour les deux :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    <script type="text/javascript">
    	function searchValue(tableau, value) {
    		for(i = 0; i < tableau.length; i++) {
    			if(tableau[i].value == value)
    				return i;
    		}
    		return -1;
    	}
     
    	function debloqueOnce(value) {
    		var elm = document.getElementsByName('a_b_c_selection[]');
    		indice = searchValue(elm, value);
    		if(indice != -1) {
    			elm[indice].checked = true;
    			validate();
    		}
    	}
     
    	function validate() {
    		var elm1 = document.getElementsByName('a_b_c');
    		elm1[0].submit(); 
    	}
     
    	// test pour  savoir si le formulaire est submit
    	var tmp = window.location.search;
    	if(tmp != "") {
    		alert('Formulaire Submit' + tmp.substring(1, tmp.indexOf("=")) + ' = ' + tmp.substring(tmp.indexOf("=")+1, tmp.length));
    		// rechargement de la page sans le search
    		window.location.href = window.location.href.substring(0, window.location.href.indexOf("?"));
    	}
     
    </script>
     
    <title>Document sans nom</title>
    </head>
    <body>
    <form name="a_b_c" action="" method="get" id="test">
    <input type="checkbox" name="a_b_c_selection[]" value="1" >
    <a href="javascript:void(0);" style="cursor:hand;"><img src="http://www.google.fr/intl/fr_fr/images/logo.gif" border="0" onClick="debloqueOnce('1')"/></a>
    <input type="button" name="autreNom" value="OK" onclick="validate();">
    </form>
    </body>
    </html>

  13. #13
    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
    code testé sous ie 6 -> aucun problème.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Je viens de tester sous IE 6.0.xxx sous win XP et quand je clic sur l'image ca ne valide pas le formulaire.

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Voila j'ai trouvé, ca va peut être semblé débile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href="javascript:debloqueOnce('1');" style="cursor:hand;">
    <img src="http://www.google.fr/intl/fr_fr/images/logo.gif" border="0" />
    </a>
    Le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    href="javascript:void(0);
    a l'air de parasiter le onclick de l'image, ca ne l'empéche pas de s'executer, mais il ne peut pas submit de formulaire (seul limitation que j'ai trouvé pour le moment).

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

Discussions similaires

  1. Mise en forme sous formulaire
    Par lito74 dans le forum Access
    Réponses: 4
    Dernier message: 17/10/2006, 11h25
  2. actualiser form sous c++ builder
    Par boopix dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/09/2006, 11h11
  3. Comment empêcher le submit d'un Form ?
    Par tscoops dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/07/2006, 11h06
  4. [HTML]submit d'un form
    Par stud77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 05/07/2006, 16h50
  5. Pb Form/sous Form du passage NT vers XP...
    Par toyyo dans le forum IHM
    Réponses: 2
    Dernier message: 25/11/2005, 17h45

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