Savoir si un formulaire a été modifié

Eléphant du PHP | 52 Messages

02 nov. 2005, 17:51

Bonjour,

Grace au bouton reset d'un formulaire, il est possible de remettre tous les champs à leur valeur d'origine (ie leur valeur du chargement de la page). Ce qui implique donc que l'information sur la modification d'un champ est stockée quelquepart.
Je me dis donc qu'il doit y avoir un moyen en javascript de savoir si oui ou non à un instant t le formulaire est dans son état d'origine ou pas.

En fait, l'idée est de tester si au moment de la fermeture de la page le formulaire a été modifié pour éventuellement proposer son enregistrement.

Merci à tous.

Eléphant du PHP | 55 Messages

02 nov. 2005, 18:39

Code : Tout sélectionner

<script type="text/javascript"> modif = false; function changement() { modif = true; } function teste() { if( modif==true ) { confirm('Attention vos changement n\'ont pas etait sauvegardé !'); } } </script> <body onUnload="teste()"> <form name="teste" method="post"> <input type="text" name="textfield" onChange="changement()"> <input name="envoyer" value="envoyer" type="button"> </form> </body>
je vien de faire sa mais il y a encore des modif a apporter :wink:
j'ai oublier le nom de la fonction qui permet de bloquer la fermeture de la fenetre !
Image

Eléphant du PHP | 52 Messages

02 nov. 2005, 19:09

Code : Tout sélectionner

<script type="text/javascript"> modif = false; function changement() { modif = true; } function teste() { if( modif==true ) { confirm('Attention vos changement n\'ont pas etait sauvegardé !'); } } </script> <body onUnload="teste()"> <form name="teste" method="post"> <input type="text" name="textfield" onChange="changement()"> <input name="envoyer" value="envoyer" type="button"> </form> </body>
je vien de faire sa mais il y a encore des modif a apporter :wink:
j'ai oublier le nom de la fonction qui permet de bloquer la fermeture de la fenetre !
Oui mais ca ne marche que pour un seul champ.
En fait je souhaite quelquechose qui fonctionne quels que soient les champs de mon formulaire, justement sans avoir à ajouter une action sur le onchange de chaque élément de mon formulaire.

Eléphant du PHP | 55 Messages

02 nov. 2005, 19:25

le Onchange a chaque parti du formulaire est obligatoir pour tester le changement de valeur ;) sans lui on ne peu pas savoir si il y a changement ou non lol

la solution la plus simple serai de faire cela :

Code : Tout sélectionner

<body onBeforeUnload="return('êtes vous sûr d'avoir enregistrer vos modifications ?');">
:) sa va simplement afficher un message d'averticement avec possibilité de revenir en arrier !
Image

Eléphant du PHP | 52 Messages

02 nov. 2005, 19:32

le Onchange a chaque parti du formulaire est obligatoir pour tester le changement de valeur ;) sans lui on ne peu pas savoir si il y a changement ou non lol
Merci, heureusement pour moi (et surtout pour mon patron) ca fait partie des choses que je connais :wink:

Pour reformuler ma question :

Y a t'il un moyen plus élégant que d'utiliser un onchange sur chaque élément pour vérifier si un formulaire a été modifié depuis le chargement de la page ?
D'où l'idée que j'avais de creuser la piste du "reset" du form qui lui est au
courant des modifs...enfin sauf s'il réinitialise toutes les valeurs sans se poser de questions et donc sans savoir s'il y a réellement eu des modifs (et malheureusement pour moi je crois que c'est ce qui se passe).