Javascript submit et onsubmit

Résolu/Fermé
webmc Messages postés 23 Date d'inscription samedi 14 juillet 2007 Statut Membre Dernière intervention 13 août 2010 - 28 déc. 2008 à 02:45
 bigRoger - 28 oct. 2009 à 15:34
Bonjour,

Habituellement, j'utilise la fonction : <a href="javascript:document.formcontact.submit()">Valider</a> pour confirmer un formulaire en lieu et place d'un bouton submit. Afin de contrôler certains champs, je suis amené à utiliser : onsubmit="return validate(this)" dans la balise form et un fichier js externe contenant le script.

Ce dernier fonctionne très bien avec un bouton submit, mais à partir d'un lien, la fonction onsubmit n'est pas exécutée...

Après quelques rechreches sur le net qui expliquent, soit que la bonne méthode c'est un bouton submit et puis c'est tout, soit que c'est impossible... j'ai trouvé quelques pistes :

1 - <a href="#" onclick="formcontact.onsubmit();">Valider</a>

La fonction onsubmit est bien exécutée, mais une fois tous les contrôles effectués par le script, l'action submit n'est pas appelée, donc le formulaire n'est pas transmis.

2 - <a href="javascript:document.getElementById('formcontact').onsubmit();">Valider</a>

Une page blanche apparait avec le valeur false et ça s'arrête là.

Je suis convaincu qu'une solution doit exister, mais laquelle ?
Merci à celui ou celle qui me permettra d'avancer...

@+

1 réponse

webmc Messages postés 23 Date d'inscription samedi 14 juillet 2007 Statut Membre Dernière intervention 13 août 2010 8
28 déc. 2008 à 20:40
Hourra ! Je viens de trouver : solution ci-dessous.
@bientôt


<head>
<script type="text/javascript" src="js/fichier.js"></script>
<script language="JavaScript">
function submitform()
{
if(document.form.onsubmit())
{
document.form.submit();
}
}
</script>
</head>

<body>
<form method="post" name="form" id="form" action="fichier.php" onsubmit="return validate(this)">
....
<a href="javascript:submitform()">valider</a>
</form>
</body>
5
Merci pour l'astuce.

On peut aussi écrire :

<form action="blabla" method="post" onSubmit="return test();">

<input type="image" src="/img/annuler.png" onClick="if(onSubmit()) submit();" />

</form>
0