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 n'est pas une fonction ?


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut [DOM] Submit n'est pas une fonction ?
    Bonjour,

    Je suis en train de dev un fomulaire avec des confimations d'action en javascript :

    http://www.team-gt5net.com/~championnat/test8.htm


    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
    function result_validate(id)
    {
      if(confirm("Voulez-vous valider result_1 ?"))
      {
    	document.forms['result_1'].elements["action"].value = "validate";
    	document.forms['result_1'].submit();
      }
      else
    	window.location.href = "result.php?p=1";
    }
     
     
                    <form action="test8.php?p=1" method="post" name="result_1" id="result_1" style="display: inline;" >
                      <input type="hidden" name="submit" value="1" />
                      <input type="hidden" name="id_users" value="1" />
                      <input type="hidden" name="action">
                      <input type="hidden" name="comments">
                      <a href="javascript:void(0);" onclick="javascript:result_validate(1);"><img src="../img/championnat/flag_green.png"  width="16" height="16" border="0" alt="f_green" class="input_edit" /></a> 
                      <a href="javascript:void(0);" onclick="javascript:result_doubt(1);"><img src="../img/championnat/flag_red.png"  width="16" height="16" border="0" alt="f_red" class="input_edit" /></a> 
                      <a href="javascript:void(0);" onclick="javascript:result_disqualify(1);"><img src="../img/championnat/flag_black.png"  width="16" height="16" border="0" alt="f_black" class="input_edit" /></a> 
                    </form>
    Mais j'ai cette erreur sous mozilla :

    Erreur*: document.forms.result_1.submit is not a function
    Fichier Source*: http://www.team-gt5net.com/~championnat/test8.htm
    Ligne*: 33
    Je vais travailler drapeau par drapeau et je commence par le vert


    Merci pour votre aide

  2. #2
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Par défaut
    Bonjour,

    C'est parce que tu n'as simplement pas de bouton sumbit.

    Essaye en créant un bouton et le masquer :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	function result_validate(id)
    {
      if(confirm("Voulez-vous valider result_1 ?"))
      {
    	document.forms['result_1'].elements["action"].value = "validate";
    	var btn = document.forms['result_1'].appendChild(document.createElement("button"));
    	btn.style.display = 'none';
    	btn.click();
       }
      else
    	window.location.href = "result.php?p=1";
    }
    Je ne réponds pas aux questions techniques par MP.

  3. #3
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut
    oué j'ai trouvé ça aussi en cherchant plus sur google ... j'ai un champs submit du coup il applique pas la fonction mais va chercher le champs d'où l'erreur ... j'avais renommer mon champs mais ça m'arrangeais guère pour l'homogénéité de mon code par rapport au reste du site

    ta solution du bouton masquer j'y avais pas pensé


    du coup mon formulaire ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                    <form action="test8.php?p=1" method="post" name="result_1" id="result_1" style="display: inline;" >
                      <input type="hidden" name="submit" value="1" />
                      <input type="hidden" name="id_users" value="1" />
                      <input type="hidden" name="action">
                      <input type="hidden" name="comments">
                      <input type="submit" name="send" style="display: none;" >
                      <a href="javascript:void(0);" onClick="javascript:result_validate(1, 'dark_vidor', '1\'12.420');"><img src="../img/championnat/flag_green.png"  width="16" height="16" border="0" alt="f_green" class="input_edit" /></a> 
                      <a href="javascript:void(0);" onClick="javascript:result_doubt(1, 'dark_vidor', '1\'12.420');"><img src="../img/championnat/flag_red.png"  width="16" height="16" border="0" alt="f_red" class="input_edit" /></a> 
                      <a href="javascript:void(0);" onClick="javascript:result_disqualify(1, 'dark_vidor', '1\'12.420');"><img src="../img/championnat/flag_black.png"  width="16" height="16" border="0" alt="f_black" class="input_edit" /></a> 
                    </form>
    et mes fonctions qui font par rapport au drapeau (implémenté avec jQuery) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function result_validate(id, pseudo, result)
    {
    	jConfirm('Êtes-sur de Vouloir valider '+result+' pour '+pseudo+'?', 'Confirmation Dialog', function(r) {
      		if( r )
    		{
    			document.forms['result_'+id].elements["action"].value = "validate";
    			document.forms['result_'+id].elements["send"].click();
    		}
    		else
    			document.forms['result_'+id].reset();
    	});
    }
    merci du coup de main

  4. #4
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Par défaut
    Je ne vois pas trop le problème, ce code devrait fonctionner

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    function result_validate(id, pseudo, result)
    {
    	jConfirm('Êtes-sur de Vouloir valider '+result+' pour '+pseudo+'?', 'Confirmation Dialog', function(r) {
      		if( r )
    		{
    			document.forms['result_'+id].elements["action"].value = "validate";
    			var btn = document.forms['result_'+id].appendChild(document.createElement("button"));
    			btn.style.display = 'none';
    			btn.click();
    		}
    		else
    			document.forms['result_'+id].reset();
    	});
    }

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                    <form action="test8.php?p=1" method="post" name="result_1" id="result_1" style="display: inline;" >
    					<div>
    					                  <input type="hidden" name="submit" value="1" />
                      <input type="hidden" name="id_users" value="1" />
                      <input type="hidden" name="action">
                      <input type="hidden" name="comments">
                      <a href="javascript:void(0);" onClick="javascript:result_validate(1, 'dark_vidor', '1\'12.420');"><img src="../img/championnat/flag_green.png"  width="16" height="16" border="0" alt="f_green" class="input_edit" /></a> 
                      <a href="javascript:void(0);" onClick="javascript:result_doubt(1, 'dark_vidor', '1\'12.420');"><img src="../img/championnat/flag_red.png"  width="16" height="16" border="0" alt="f_red" class="input_edit" /></a> 
                      <a href="javascript:void(0);" onClick="javascript:result_disqualify(1, 'dark_vidor', '1\'12.420');"><img src="../img/championnat/flag_black.png"  width="16" height="16" border="0" alt="f_black" class="input_edit" /></a> 
    					</div>
                    </form>

    Il faut que le bouton soit généré via DOM au moment de l'exécution de la fonction (c'est l'intérêt principal).
    Je ne réponds pas aux questions techniques par MP.

Discussions similaires

  1. $div n'est pas une fonction.
    Par yann18 dans le forum jQuery
    Réponses: 20
    Dernier message: 19/09/2011, 16h24
  2. cet objet n'est pas une fonction
    Par Goundy dans le forum jQuery
    Réponses: 12
    Dernier message: 25/01/2010, 00h47
  3. Ma fonction n'en est pas une ?!
    Par JFKen dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 25/08/2006, 15h08
  4. l'executable n'est pas une win32 valide
    Par joebilou dans le forum Windows
    Réponses: 4
    Dernier message: 28/06/2005, 11h53

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