11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je suis confronté à un étrange problème avec IE et le comportement de l'évènement "onsubmit". Sur Firefox, ça marche dans le sens où le le formulaire n'est pas envoyé. Sur IE, il est validé quoique je fasse...

Pour simplifier au maximum, j'ai même replacé le retour de ma fonction de validation par un "false" :

<form action="transactions.php" method="GET" id="formDiv" onsubmit="return false">
<p><?php echo $L_EXPLICATION_CONFIRMATION_PAIEMENT; ?></p><br/>
<p><label><?php echo $L_EMAIL; ?></label> <input class="inputtext" ...
...
</form>


J'ai du mal à croire que ça vienne du code, ou même de la fonction de test. J'aimerai donc savoir de quoi ça pourrait venir d'autre.

Merci bien d'avance !
Modifié par Korangar (26 Aug 2010 - 11:14)
Hello,

Es-tu sûr que JS est activé dans IE ? Tu peux t'en assurer en ajoutant <script>alert("whatever")</script> avant ton élément form par exemple.

Tu peux ensuite t'assurer que ton gestionnaire d'événement submit est correctement appelé, en écrivant par exemple onsubmit="alert('hihaho'); return false"
Merci pour vos réponses. Malheureusement, aucune des deux ne résout le problème.

@Pax : D'habitude je met toujours un point-virgule. Mais comme ça ne marchait pas, j'ai essayé toutes les combinaisons possibles (sans points-virgules, avec ou sans parenthèses supplémentaires...).

@Julien : Oui le javascript est activé. D'ailleurs le "alert('hihaho'); return false" m'affiche bien hihaho mais valide quand même le formulaire Smiley rolleyes
Modérateur
Bonjour,

Est-ce possible de nous donner l'url de la page concernée?

Hypothèses en vrac :
- Vérifier qu'il n'y aucune autre erreur Javascript dans la page.
- Vérifier la présence de d'autres Javascript sur la page qui pourraient affecter le comportement du formulaire.
Modifié par Tony Monast (24 Aug 2010 - 17:31)
Bonjour,

Merci pour la piste, j'ai pu trouver d'où venait l'erreur. En fait, un script de la librairie YAHOO se charge de vérifier les formulaires et doit à mon avis prendre le pas sur le onsubmit de chaque balise formulaire sur IE... Vraiment bête comme erreur au final Smiley langue

Donc j'ai rusé en modifiant mon formulaire et mon script de vérification. J'ai mis l'attribut action à nul :
<form action="" method="GET" id="form_payment_confirm" name="form_payment_confirm" onsubmit="javascript:void(0);">


Et je le remplace par javascript si le formulaire est valide ou non :
document.form_payment_confirm.action = "javascript:void(0)";

document.form_payment_confirm.action = "transactions.php";


Je sais pas si c'est bien correct comme ça mais j'ai pas trouvé d'autres solutions plus élégantes.

En tout cas, merci pour votre aide Smiley smile