réinitialiser un formulaire sans charger la page avec Ajax

Petit nouveau ! | 4 Messages

06 juil. 2015, 13:55

Bonjour le forum,

J'ai crée un formulaire de contact et j'ai réussi à envoyer les informations sans rafraîchir ma page avec Ajax, mais après l'affichage de mon message de confirmation, le formulaire n'est pas réinitialiser, il me faut absolument recharger la page.
j'ai fait un :

Code : Tout sélectionner

document.forms['form'].reset();
mais c'est avant la confirmation d'envoi
Je suis débutante sur Ajax, aidez moi svp.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

06 juil. 2015, 14:00

Bonjour,

Il est plus propre d'utiliser getElementById() pour bien cibler le formulaire en question :
document.getElementById("myForm").reset();
Exemple d'utilisation ici :
http://www.w3schools.com/jsref/tryit.as ... form_reset
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 4 Messages

06 juil. 2015, 14:08

Bonjour @rthur,
Merci pour la remarque, en fait j'ai un bouton qui m'affiche le formulaire, après l'affichage du message de confirmation, je ne peux pas réafficher le formulaire, obligée de charger la page, serait il possible d'utiliser les sessions?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

06 juil. 2015, 15:29

A priori pas besoin des sessions.
Une fois le message de confirmation affichée, que veux-tu faire ?
- Si c'est réafficher le formulaire mais en l'ayant vidé de son contenu alors mon code ci-dessus est bon.
- Si c'est masquer le formulaire, il suffit de le mettre dans un div et de passer sa propriété CSS display à none.
- Si c'est renvoyer vers une autre page (mais tu perds l'intérêt de l'ajax pour l'envoi), alors il suffit de mettre un lien/bouton sur la fermeture du message de confirmation
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 4 Messages

06 juil. 2015, 15:40

- en fait la fermeture du message de confirmation ne marche pas puisque je l'affiche sur le même div du formulaire, un simple window.close; ne marche pas,
je voudrais que le message s'en va automatiquement après x secondes et que le bouton soit cliquable et me ré affiche le formulaire sans charger la page.

à ce moment, je le redirige après x secondes vers la page d’accueil, mais comme vous dites je perds l'utilit" d'ajax, sinon ou dois je placer le code que vous m'avez proposé? après l'envoi des données avec ajax?

Petit nouveau ! | 4 Messages

06 juil. 2015, 15:47

je viens de voir ma console, le reset n'est pas interprété il me met l'erreur " Cannot read property 'reset' of undefined"

Mammouth du PHP | 688 Messages

06 juil. 2015, 16:24

document.getElementById("myForm").reset();
pour que cela fonctionne, il faut un <form ... id="myForm">