[JS] problème de détection de modification [Résolu

:hello: encore moi

j’ai plusieurs formulaires sur une même page.

chaque form contient un textarea et un submit (+ AJAX et tout le web 2.0)

J’aimerais détecter si un textarea a été modifié si l’utilisateur passe au suivant sans avoir validé.

J’ai donc mis un onBlur qui fait la detection. Mais le problème c’est que si l’utilisateur clic sur le bouton pour valider (ce qu’il doit faire donc), l’action onBlur est activée et j’ai une alert comme quoi ça n’a pas été sauvegardé.

Comment faire pour que la detection ne se fasse pas s’il a quitté le textarea pour cliquer sur le bouton ?

Tu met un “flag” dans un script que tu lance sur le click bouton: un petit boolean global (sic) s’il est à true, dans ta fonction qui fait le contrôle, tu squizze direct.

sauf que logiquement, le onBlur est effectué avant le onClick :confused:

Alors tu fait une éxecution décalée avec un setinterval :smiley: (grosse astuce ou fumisterie)…
avec un petit intervalle de 0.2 secondes, ça ne devrais pas trop se voir…

http://www.w3schools.com/js/tryit.asp?file…dow_setinterval

edit: la solution propre serait p-être de ne pas passer par un onBlur, mais plutôt un onChange, onKeyDown ou onfocus sur tous les champs (tu fait ton test qui si un autre champs prend le focus, sinon, c’est que c’est le bouton qui a pris le focus…

Bon en fait j’interdit la modification des autres champs tant que l’utilisateur n’a pas cliqué sur envoyer ou annuler.

comme ça c’est réglé :slight_smile:
Merci de tes idées :slight_smile:

Je t’en prie :wink:
Ouaip, c’est un peu bizarre de mettre plusieurs form sur une seule page, du coup, c’est un peu dur à gérer.

Je t’explique le truc.

J’ai plusieurs <div> qui ont chacuns un contenu. Ce ne sont que des simples div à la base.

Mais vu que j’aime bien m’amuser à créer des trucs un peu sympa, si on clic sur le contenu, le div se transforme en un form + textarea pour que le contenu puisse être modifié. (puis mis à jour avec ajax)

Ce qui m’embetait c’était d’avoir plusieurs textarea sur la même page, sans savoir s’il avaient étés mis à jour dans la bdd ou pas. :slight_smile:

J’aime bien ce genre de mode d’edition, ça rend les interface plus simple (visuellement) et plus souple à utiliser. ça fait un peu “wiki” dans le concept.
Il ne faudrait peut-être autoriser qu’un seul DIV en edition à la fois. un peu comme si on editait les post d’un forum directement: on modifie éventuellement plusieurs champs: titre, auteur, contenu, mais sur un seul post à la fois…
:slight_smile:

C’est bien ce que j’ai voulu faire :wink: