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 :

Parcours dynamique des éléments d'un form


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Par défaut Parcours dynamique des éléments d'un form
    Bonjour tout le monde.

    J'ai une fenêtre divisé en deux Frame (je sais c'est pas génial, mais bon je fais de la maintenance, et j'ai pas le temps de tout changé...) qui contiennent chacun un formulaire. Les deux sont issus de page JSP.
    Mon premier formulaire contient 2 liste déroulantes et le bonton "Envoyer". Le choix dans les listes déroulantes influence l'apparition de telle ou telle JSP dans la deuxième frame. Et cette deuxième frame (qui comporte une liste d'option) peut être éditée par mon utilisateur, afin de rajouter des options. Ppour que ma servlet appelée par le bouton envoyer puisse toujours gérer toutes les options j'impose à mon utilisateur une convention de nommage de ses nouveaux champs d'options, comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT type='text' name='filter_nomDuFiltre'...>
    Il faut également qu'il insère dans le premiers frame un champ hidden correspondant à cette nouvelle option, pour la soumettre en get à ma servlet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT type='hidden' name='filter_nomDuFiltre value="">
    Ce que je n'arrive pas à faire, c'est copier de manière automatique (itérative...) tous les champs qui porte le nom filter_XXX de ma seconde frame vers la première.
    J'ai essayé quelque chose du genre,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        for(int i=0; i<parent.frames['frameOptions'].document.forms['OPTIONS'].elements.length; i++){
            obj=parent.frames['frameOptions'].document.forms['OPTIONS'].elements[i];
            if(obj.name.substring(0, "filter_".length == "filter_"){ 
                parent.frames['framePpal'].document.forms['OPTIONS'].elements[obj.name] = obj;
            }
        }
    mais ça ne marche pas (et ne m'affiche aucun message évidement, pour faciliter la chose !)

    Est-ce que quelqu'un aurait une idée SVP ?

  2. #2
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var Window = parent.frames['frameOptions'];
    var Document = (Window.document)?(Window.document):(Window.contentDocument);
    var Form = Document.forms[""];
    var Elements = Form.elements;
    ??

  3. #3
    Membre éclairé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Par défaut
    Je viens d'essayer ce code... mais ça ne marche pas mieux !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        var Window = parent.frames['frameOptions'];
        var Document = (Window.document)?(Window.document):(Window.contentDocument);
        var Form = Document.forms["OPTIONS"];
        var Elements = Form.elements;
     
        //Retrieve all filter parameters names and values
        for(int i=0; i<Elements.length(); i++){
            obj=Elements[i];
            alert("obj.name "+obj.name);
        }
    C'est bien ce que tu me suggérais Fremy ?

  4. #4
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Pardon, en me relisant, je me rend compte que j'ai écrit n'impote quoi
    La fatigue surement ! Et ca ?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var Context = parent.frames['frameOptions'];
    var Window = (Context.window)?(Context.window):(Context.contentWindow);
    var Document = (Window.document)?(Window.document):(Window.contentDocument);
    var Form = Document.forms["OPTIONS"];
    var Elements = Form.elements;

  5. #5
    Membre éclairé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Par défaut
    Pas mieux...

    En fait, ce qui me laisse pantois, c'est que j'ai mis un alert() juste avant... et qu'il ne s'affiche pas. Bien sûr, il s'affiche dès que je commente m'a boucle.

    EDIT: D'ailleurs au passage, sur Elements, il faut que je fasse un length ou un length() ?

  6. #6
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Citation Envoyé par leminipouce
    Pas mieux...

    En fait, ce qui me laisse pantois, c'est que j'ai mis un alert() juste avant... et qu'il ne s'affiche pas. Bien sûr, il s'affiche dès que je commente m'a boucle.

    EDIT: D'ailleurs au passage, sur Elements, il faut que je fasse un length ou un length() ?
    1) Que dit la console FireFox ?
    2) Array.length

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

Discussions similaires

  1. Centrage des éléments d'un form WPF
    Par Ylmith dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/03/2013, 15h48
  2. Relier des données sur des éléments d'une form
    Par Takumi dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/01/2010, 16h06
  3. [vb.net] Ajustement automatique des éléments d'une form
    Par solid_sneak06 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/03/2009, 18h21
  4. Disposition dynamique des éléments enfants dans un StackPanel
    Par FRED.G dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 02/02/2009, 12h03
  5. Parcours dynamique des champs
    Par cosmos38240 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/11/2005, 14h54

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