Incohérence avec onsubmit ?
Bonjour,
J'ai beaucoup lu à ce sujet. J'ai simplement envie de vérifier un formulaire avant envoi. Classique, oui, mais là ça ne marche pas.
Mon premier essai :
Code:
1 2 3 4 5
| function valider(form)
{
alert("Saisissez les données");
return false;
} |
Code:
1 2 3 4
| <form name="formulaire" id="formulaire" method="post" action="questionnaire.php" onsubmit="return valider(this)">
...
...
<input type="submit" name="valider" value="Valider le questionnaire" /> |
IE :Il ne se passe rien. Même pas d'alert.
FIREFOX : Le formulaire est tout le temps envoyé malgré le return false.
Note: En enlevant le "this" pour faire onsubmit ="return valider()" et function valider() ça ne change strictement rien.
Deuxième essai :
Code:
<form name="formulaire" id="formulaire" method="post" action="questionnaire.php" onsubmit="return false">
Là, quand même, le formulaire ne s'envoie pas, ni IE ni Firefox.
Où est ce que je me trompe dans mon premier essai ?
Merci !
empêcher la soumission de formulaire
Salut,
Ceci est l'illustration de ton cas :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>empêcher la soumission de formulaire</title>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
<style type="text/css">
</style>
</head>
<body>
<form id="f" action="" method="post" onsubmit="return fn(this);">
<input id="b1" type="submit" name="b" value="b1" />
</form>
<script type="text/javascript">
<!--
function fn(form) {
alert(form);
return false;
}
//-->
</script>
</body>
</html> |
Et ça fonctionne, j'aurais tendance à dire que l'erreur est ailleurs.
ne pas nommer une fonction comme un élément de formulaire
Hé bien oui, avec un élément de formulaire et une fonction portant le même nom on obtiens ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>ne pas nommer une fonction comme un élément de formulaire</title>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
<style type="text/css">
</style>
</head>
<body>
<form id="f" action="" method="post" onsubmit="alert(valider);return false;">
<input id="b1" type="submit" name="valider" value="b1" />
</form>
<script type="text/javascript">
<!--
function valider() {
alert("blah");
}
//-->
</script>
</body>
</html> |
L'alerte ne trouve pas la fonction, mais le bouton de soumission. Elle considère valider comme le raccourci de document.forms[0].valider, CQFD.