IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Vérifier si la valeur d'un champ a été modifiée


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Par défaut Vérifier si la valeur d'un champ a été modifiée
    Bonjour à tous,

    ma question est la suivante.

    Je génère un formulaire html à partir d'un fichier xml et d'une API DOM le tout en java.

    Lorsque la personne ferme ce formulaire je dois vérifier qu'aucun champ n'a été modifié. Si des champs sont modifiés alors je dois faire apparaitre un popup de confirmation si oui ou non il souhaite fermer le formulaire sans sauvegarder les données modifiées.

    Quel est le meilleur moyen?

    J'avais pensé pour chaque champ, créer un input type hidden en ayant comme name le nom du champ suivi du texte hidden

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type=text" name="text1" value="valeur"/>
    <input type="hidden" name="text1hidden" value="valeur"/>
    Lorsque l'événement survient, je récupère dans deux arrays les valeurs name et value pour chaque champ hidden et non hidden et ensuite faire une comparaison entre les valeurs.

    Afficher le popup de confirmation si la valeur d'un champ est différente entre le "hidden" et le "text".

    Si vous avez une meilleure idée elle est la bienvenue.

    D'avance merci pour vos réponses.

  2. #2
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    Pourquoi, à la place de mettre un hidden, ne pas simplement stoquer les valeurs par défaut dans un tableau (dans l'ordre d'apparition) ?

    Il ne te restera plus à la fermeture qu'à récupérer les valeurs de ton formulaire dans un tableau en utilisant la même méthode, puis à comparer tes deux tableaux comme une sauvage
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre éclairé Avatar de sorenson
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Par défaut
    Bonjour Stessy,

    je pense que tu peux ne mettre qu'un champ caché dans ton formulaire.

    Pour chaque champ, tu créer un évènement onChange qui lance une fonction javascript qui donne à ton champ Hidden une valeur : 1 ou 0.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <input type="text" name="champ1" onChange="rempliHidden();">
    <input type="text" name="champ2" onChange="rempliHidden();">
    <input type="text" name="champ3" onChange="rempliHidden();">
    Comme ça tu pourra savoir s'il y a eu au moins un changement dans ton formulaire.

    Si tu veux savoir quels sont les champs qui ont été modifié, alors à chaque modification d'un champ, du doit compléter un tableau dans lequel du mets le nom des champs modifiés ou alors leur index et puis tu inscrit ton tableau dans le champ Hidden. C'est une solution parmis d'autre. On pourrai aussi imaginer utiliser des fichiers textes mais là c'est utiliser un marteau pour tuer une mouche.

  4. #4
    Membre émérite

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Par défaut
    Voilà la grosssssssssssssssssssse question de débutant en javascript.

    J'avais complètement oublié l'événement onChange

    Je dois juste savoir si un champs a été modifié sans spécifier lequel.

    Je n'ai juste qu'à créer une variable globale dans mon script et incrémenter cette variable.
    Checker cette variable ( >0) lors de la fermeture et afficher le confirm si besoin est.

    Un grand merci à vous deux

    PS: titoumimi, je ne suis pas une sauvage mais un sauvage

  5. #5
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut


    Mes plus plates excuses, mais avoue que ton pseudo prète à confusion

    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  6. #6
    Membre émérite

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Par défaut
    Citation Envoyé par titoumimi


    Mes plus plates excuses, mais avoue que ton pseudo prète à confusion


    C'est po grave. J'ai l'habitude

    Mais maintenant tu es prévenu. La prochaine fois je pardonne pas


  7. #7
    Membre expérimenté Avatar de Tdeny
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 287
    Par défaut une autre façon
    peut être plus courte

    <html>
    <script>
    chg = new Boolean();
    alert(chg);
    </script>
    <body>
    <form onKeypress="chg='true';">
    <input type="text" name="toto" width="15" value="">
    </form>
    <a href="#" onclick="alert(chg);return false">ici</a>
    </body>
    </html>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Vérifier l'existance d'une valeur dans un champ
    Par k3vin dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/05/2010, 22h29
  2. Réponses: 10
    Dernier message: 21/04/2009, 13h33
  3. [Rico] Vérifier la valeur d'un champ texte (RicoCalendar + AJAX)
    Par Arno81 dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 24/04/2008, 11h09
  4. Comment vérifier que la valeur d'un champ soit unique?
    Par le lynx dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/05/2005, 14h11
  5. Réponses: 3
    Dernier message: 12/01/2005, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo