Js : fonction qui ne s'exécute pas...

Fermé
Jean_2 Messages postés 245 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 13 septembre 2013 - 21 mars 2008 à 10:28
 givinuppompiz - 29 avril 2011 à 19:30
Bonjour,

Dans un formulaire, j'appelle une fonction présente dans un fichier js (dans ce fichier js mes autre fonctions sont ok).
Le problème est que cette fonction ne s'exécute pas...

voici les quelques lignes concernées :
xhtml :
	<form method="post" id="formulaire" action="commentaires.php" onsubmit="return validation();">

	<fieldset>
		<legend>Vos coordonnées</legend>
			<label for="pseudo">Pseudo* </label> : <input type="text" name="pseudo" id="pseudo" size="20" />
			<label for="ville">Ville* </label> : <input type="text" name="ville" id="ville" size="20" />
			<label for="age">Age </label> : <input type="text" name="age" id="age" size="5" /> 
	</fieldset>
...
...


le js :
function validation() 
{ 
if(document.formulaire.pseudo.value == "") 
	{ 
        alert ('veuillez entrer votre pseudo'); 
        document.formulaire.pseudo.focus(); 
        return false; 
    	}
	if(document.formulaire.ville.value == "") 
		{ 
        alert ('veuillez entrer un nom de ville'); 
        document.formulaire.ville.focus(); 
        return false;
   	}
else {return true;}
}


Voyez-vous ce qui cloche ?
PS : j'ai simplifié au max...

merci à vous

6 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
28 mars 2008 à 17:07
Si tu n'as qu'un seul formulaire sur ta page cette instruction suffira :
document.forms[0].submit(true);


Si tu as deux formulaires et que celui dont tu veux faire le submit se trouve en deuxième positions, tu fera donc :
document.forms[1].submit(true);


Mais quand tu as plusieurs formulaires sur une même page, point de vue maintenabilité il est préférable de donner un identifiant aux formulaires :
<form id="toto" ...


Et d'appeler via un getElementById le formulaire qu'il faut :
if ( document.getElementById("toto") )
    document.getElementById("toto").submit(true);

1
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
21 mars 2008 à 11:15
Tu as certainement oublié d'inclure ton fichier javascript dans ta page html.
Peux-tu montrer l'ensemble de ton fichier html, notamment l'entête, et plus exactement ce qu'il y a entre les balises <head></head>
0
Jean_2 Messages postés 245 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 13 septembre 2013 12
21 mars 2008 à 12:15
voilà la partie du head concernée :
<script type="text/javascript" src="mon_javascript.js"></script>

Y pas de soucis, le problème n'est pas là car les autres fonctions présentes dans ce fichier js fonctionnent, elles...

Mais la fonction validation foire.
0
Jean_2 Messages postés 245 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 13 septembre 2013 12
21 mars 2008 à 14:12
l'erreur est-elle lors de l'appel à la fonction ou dans la fonction elle-meme ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
21 mars 2008 à 17:11
En fait je te déconseille de mettre une fonction de validation sur l'évênement onsubmit de la balise form.
J'ai lu il y a un moment que ca peut planter / mal fonctionner si tu l'utilise mal mais... ma mémoire étant ce qu'elle est je ne sais plus pourquoi ni comment.
Pour mes validations de formulaire ce que je fais généralement c'est ceci :

<form ... action="toto.pho" ... (pas de onsubmit)>
     ... mes champs ...
    <input type="button" value="submit" onclick="validation()">
</form>


Et dans la fonction de validation du déclenche le submit du formulaire si tes champs sont validés.
Tu remarquera que le bouton n'est pas de type submit pour ne pas déclencher le submit automatique du formulaire lors du clic sur le bouton.
0
Jean_2 Messages postés 245 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 13 septembre 2013 12
28 mars 2008 à 15:30
je viens de voir ton message kij_82.

Alors je n'ai plus qu'une seule question : comment déclencher le submit dans le javascript si les champs sont bien renseignés ?

merci
0
givinuppompiz
29 avril 2011 à 19:30
t'aurais pas oublié name=formulaire ds la balise <form... ?
0