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 :

verrouillage formulaire javascript


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut verrouillage formulaire javascript
    Bonjour,

    Voici mon problème :
    j'ai une JSP générique qui contient un formulaire permettant d'afficher les informations d'une personne. Ces personnes sont payeur et/ou destinataire.
    On saisit d'abord le payeur. Si on choisit que le payeur et le destinataire sont une unique personne, le deuxième affichage de ma JSP affiche le même formulaire prérempli dans lequel les données sont figées. Cependant ces données

    j'ai une JSP qui affiche les données d'une personne. Parfois les données de ce formulaire sont modifiables, parfois non. Cependant, toutes les données doivent être transmises à chaque fois, c'est pourquoi le enabled="true" ne fonctionne pas.

    Ce formulaire comporte des ListBox, des Input text et des RadioButon, c'est pourquoi le readOnly ne fonctionne pas.

    Malgré mes nombreuses recherches et à mon grand étonnement, je n'ai pas vu de fonction qui permette de verrouiller un formulaire.
    Première question : Existe t il une fonction simple qui verrouille les données d'un formulaire ??

    Sinon, j'ai vu sur les différents forums, qu'une solution possible est d'associer un blur() à l'évènement onFocus de chaque élément du formulaire. Cependant, étant grand débutant en javascript, je n'arrive pas à faire fonctionner cette solution, et comme j'aimerais bien faire une fonction générique, voici un extrait de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for(var i = 0; i < document.forms[0].elements.length; i++) {
      document.forms[0].elements[i].onFocus  = document.forms[0].elements[i].grub() ;	
    }
    Deuxième question : Qu'est ce qui ne fonctionne pas dans ce code ??

    Merci de votre attention et éventuellement de votre aide.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par promopub Voir le message
    Première question : Existe t il une fonction simple qui verrouille les données d'un formulaire ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('id_champ').disabled=true;
    Deuxième question : Qu'est ce qui ne fonctionne pas dans ce code ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(var i = 0; i < document.forms[0].elements.length; i++) {
      document.forms[0].elements[i].onfocus  = document.forms[0].elements[i].grub() ;	}
    JS est sensible à la casse

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Merci mais :

    • Le disabled=true ne m'interesse pas car du coup les données ne sont pas transmises lors du post, or j'ai besoin de ces données.

    • Je sais que JS est sensible à la casse, mais quand je mets onfocus, IE m'indique des erreurs de script. Il n'y a plus d'erreur lorsque je mets onFocus;

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par promopub Voir le message
    Le disabled=true ne m'interesse pas car du coup les données ne sont pas transmises lors du post, or j'ai besoin de ces données
    Tu peux le repasser à false sur le onsubmit du form : aucun risque de modification par l'utilisateur ...
    Je sais que JS est sensible à la casse, mais quand je mets onfocus, IE m'indique des erreurs de script. Il n'y a plus d'erreur lorsque je mets onFocus;
    Oui ... enfin ... concernant la syntaxe, IE (6 surtout) n'est pas une référence.
    Enlève déjà cette ligne (pour tester) juste pour voir s'il n'y a pas une autre erreur ...
    Et la fonction grub() ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Tu peux le repasser à false sur le onsubmit du form : aucun risque de modification par l'utilisateur ...
    Ok très bien pour ce point, maintenant le problème qui reste est que les boutons de mon formulaire aussi sont grisés. C'est moche

    Oui ... enfin ... concernant la syntaxe, IE (6 surtout) n'est pas une référence.
    En passant avec Firefox, onfocus ne génère pas d'erreur. Par contre même là mon grub() ne fonctionne pas. As tu une idée ???


    Merci

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par promopub Voir le message
    Ok très bien pour ce point, maintenant le problème qui reste est que les boutons de mon formulaire aussi sont grisés. C'est moche
    Je parlais des input concernés, pas de désactiver le <form> lui-même ...
    As tu une idée ???
    Une piste : quel est le contenu de la fonction grub() et comment est-elle déclarée ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    tu peux faire "apparaitre" un div transparent en zindex audessus de ton form qui le "desactiverait" ...

    ou un iframe parceque je crois me rappeler qu'un div ne peut pas se positonner au dessus d'un select de mémoire
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Je parlais des input concernés, pas de désactiver le <form> lui-même ...
    Ok c'est bien ce que j'avais fait.

    Une piste : quel est le contenu de la fonction grub() et comment est-elle déclarée ?
    Pardon, c'est de la fonction blur() dont je voulais parler, celle qui rend automatiquement le focus... Pardon. Elle ne fonctionne visiblement pas, pourtant il s'agit bien d'une fonction JS non ?


    Quand à l'utilisation des iFrame, je me renseigne, mais comme je suis dans le cadre d'une application Struts, je ne vois pas trop comment utiliser l'attribut src. Enfin bon je suis en phase de recherche.

    Enfin bon ce qui m'arrangerait le plus c'est une petite fonction JS qui verrouille toutes les données d'un formulaire.

    Merci de votre aide.

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par promopub Voir le message
    Pardon, c'est de la fonction blur() dont je voulais parler, celle qui rend automatiquement le focus...
    Alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms[0].elements[i].onfocus  = function () {document.forms[0].elements[i].blur();}
    Sinon, il n'y a aucune raison que le disabled d'un input se répercute sur les boutons, et c'est la propriété qui est prévue pour faire ce que tu souhaites ....

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Bon finalement la fonction blur() ne marche pas. J'ai donc trouvé une solution bancale, c'est rendre le focus à un champs hidden. C'est un peu naze mais bon, ca marche sur les champs texte et les ListBox. De toute façon, je crois que je n'ai pas trop le choix.

    Il me reste à traiter le cas des RadioButton.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/08/2006, 15h31
  2. Réponses: 2
    Dernier message: 01/08/2006, 12h52
  3. [VBA]Comment valider un formulaire javascript enVBA
    Par pegase33 dans le forum Général VBA
    Réponses: 2
    Dernier message: 29/07/2006, 18h47
  4. [Formulaire][Javascript] Décocher toutes les checkbox
    Par Salam59 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/03/2006, 14h28
  5. Formulaire + javascript + W3C
    Par v4np13 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/01/2006, 17h08

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