11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai fait une vérification de formulaire mais ça marche plus Smiley ohwell
Ne connaissant pas très bien le javascript, je ne parvient pas a trouver l'erreur.

action="mailto:arthurmaniet@mac.com"

Normalement j'ai un script php pour ça mais je suis hébergé sur .mac (qui ne le gère pas), donc je l'ai envoyé à un ami qui vas l'héberger.

Le javascript
<script type="text/javascript">
	function validation(formulaire) {
	
	if (formulaire.sujet.value == "") {
	alert("Merci d'indiquer un sujet pour votre message.");
	formulaire.sujet.focus();
	return false;
	}
			
	if (formulaire.message.value == "") {
	alert("Merci d'écrire un message.");
	formulaire.message.focus();
	return false;
	}
	
	if (formulaire.mail.value == "") {
	return true;
	} else if (formulaire.mail.value.indexOf('@') == -1) {
	alert('L\'adresse mail que vous avez indiquée est invalide.');
	formulaire.mail.focus();
	return false;
	}
	
</script>


Le formulaire
<form id="formulaire" method="post" action="mailto:arthurmaniet@mac.com" onsubmit="return validation(this)">
	<p>
		<label>Sujet :<br />
			<input type="text" name="sujet" size="30" />
		</label>
	</p>
	<p>
		<label>Message :<br />
			<textarea name="message" rows="10" cols="30"></textarea>
		</label>
	</p>
	<p>
		<label>Votre adresse mail (pas obligatoire) :<br />
			<input type="text" name="mail" size="30" />
		</label>
	</p>
	<p>
		<input class="input_send" type="submit" value="Envoyer" />
	</p>
</form>

Modifié par Whisno (31 May 2006 - 14:03)
Pourrrais-tu être un tout petit peu plus précis quand tu dis que ça marche pas ? message d'erreur, comportement inattendu, etc.
(je savais bien que j'avais oublié quelque-chose ^^)

Eh bien il fait
action="mailto:arthurmaniet@mac.com"

tout de suite, comme si je désactivait le javascript.
Je ne connais pas du tout le JS ou très peu, mais il me semble (si ca fonctionne legerement comme le php) que tu as un "== 0" qui devrais plutot etre du "!= 0"

Voir code corrigé :

<script type="text/javascript">

	function validation(formulaire) {

[code]	

	if (formulaire.sujet.value == "") {

	alert("Merci d'indiquer un sujet pour votre message.");

	formulaire.sujet.focus();

	return false;

	}

			

	if (formulaire.message.value == "") {

	alert("Merci d'écrire un message.");

	formulaire.message.focus();

	return false;

	}

	
------------------------------------------------------------------
	if (formulaire.mail.value [#red]!=[/#] "") {

	return true;

------------------------------------------------------------------

	} else if (formulaire.mail.value.indexOf('@') == -1) {

	alert('L\'adresse mail que vous avez indiquée est invalide.');

	formulaire.mail.focus();

	return false;

	}

	

</script>


Si j'arrive bien à interpreter ce code, la partie que j'ai modifié (entre ----)

Elle veut dire :

Si le formulaire ne renvoie rien, alors je fais l'action demandé. 


Ca c'est la version non corrigé,

Si le formulaire n'est pas vide, alors je fais l'action demandé


Et ca la version corrigé
Modifié par Super_baloo8 (30 May 2006 - 21:12)
"Si le formulaire ne renvoie rien, alors je fais l'action demandé." est un peux tordu, mais c'est pourtant bien ça Smiley confus (ce champ du formulaire n'est pas obligatoire, donc si il ne contient rien c'est bon aussi Smiley cligne )
Pourtant cette commande devrait etre obligatoire à mon gout, car c'est elle qui permet l'action mailto

mais par contre, cette commande je la verrais plutot à la fin du script, et la dernier commande, elle doit etre falcultative
Tu veux dire que "Votre adresse mail" doit être obligatoire?

if (reponse == "yes") {
<script type="text/javascript">
	function validation(formulaire) {
	
	if (formulaire.sujet.value == "") {
	alert("Merci d'indiquer un sujet pour votre message.");
	formulaire.sujet.focus();
	return false;
	}
			
	if (formulaire.message.value == "") {
	alert("Merci d'écrire un message.");
	formulaire.message.focus();
	return false;
	}
	
	if (formulaire.mail.value.indexOf('@') == -1) {
	alert('L\'adresse mail que vous avez indiquée est invalide.');
	formulaire.mail.focus();
	return false;
	}
	
	if (formulaire.mail.value != "") {
	return true;
	}
</script>
}

(ceci dit, ce n'était pas la cause du problème Smiley ohwell )

(tu vas poster ton 500ème message Smiley biggrin )
Merci, je n'avais meme pas vue que ca allais etre le 500 eme message de ma part lol.

Essayes un elseif sur ta dernier commande, comme ca si, tout est OK, alors on fait le mailto.

Si ca ne marche pas, je ne sais pas du tout comment faire désolé :s

Edit: ou peut etre qu'il manque la validation finale ou formulaire = true
Modifié par Super_baloo8 (30 May 2006 - 22:23)
Etant donné que je dois avoir temriné ce site pour demain (ça sent le travail de nuit Smiley ohwell ) j'ai reconstruit mon code en fonction de celui d'un autre site qui marche ^^. J'ai l'impression que
(document.forms[0].sujet.value.length<1)

marche et pas
(document.forms[0].sujet.value.value == "")

Merci quand même Smiley cligne