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

Jean_2 Messages postés 245 Date d'inscription   Statut Membre Dernière intervention   -  
 givinuppompiz -
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   Statut Contributeur Dernière intervention   857
 
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   Statut Contributeur Dernière intervention   857
 
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   Statut Membre Dernière intervention   12
 
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   Statut Membre Dernière intervention   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   Statut Contributeur Dernière intervention   857
 
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   Statut Membre Dernière intervention   12
 
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
 
t'aurais pas oublié name=formulaire ds la balise <form... ?
0