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 :

garder le focus sur une option selectionnée d'un select


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Par défaut garder le focus sur une option selectionnée d'un select
    Bonjour,
    j'ai un select dans lequel si je sélectionne une option et j'appuye sur un bouton ajouter, le focus se met à chaque fois sur la dernière option du select or j'aurais voulu que l'option que j'avais sélectionné garde le focus.
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function selectOrDiselectAll(idDiv, activation){
                    var oDiv = window.document.getElementById(idDiv,);
                    var number = oDiv.options.length;
                    for(var i=0;i<number ;i++)
                    {
                      oDiv.options[i].selected=activation;
                    }
     
              }
    Lors de l'appel de ma fonction j'ai fait:
    function selectOrDiselectAll("idselect", true);
    Comment dois-je faire pour que le focus reste tjrs sur mon option sélectionnée tant que j'en ai pas sélectionné une autre.
    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Quel rapport y a-t-il entre :

    - ajouter une option (auquel cas effectivement on peut souhaiter que l'option actuellement sélectionnée soit conservée)
    et
    - sélectionner/désélectionner toutes les options ? (auquel cas je ne comprends plus de quoi tu parles ? Qu'est-ce que tu veux "conserver" si tu sélectionnes/désélectionnes toutes les options... ?)

    Montre-nous plutôt ton bouton "ajouter", ses éventuels gestionnaires d'événement, et peut-être ta fonction d'ajout... ^^

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    Dans la fonction qui ajoute une nouvelle option, tu récupères d'abord l'index de l'option sélectionnée, ensuite tu faits l'ajout d'une nouvelle option et après tu re-sélectionnes l'option.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var j=oDiv.selectedIndex;
    //Ajout de l'option
    ......
    //reselectionne l'option
    oDiv.options[j].selected=true;
    A+.

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Par défaut
    Ce que je veux c'est juste conserver le focus sur l'option sélectionnée.
    Même si je clique sur ajouter,je veux que le focus reste sur l'option sélectionnée
    et non pas sur la dernière option comme il me le fait.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><button style="width:30%; margin:230px 0px 2px; padding:0px 2px 0px;" id="boutonAjouter" value="ajouter" onclick="selectOrDiselectAll(\'idSelect\',true);"/><img style="float:right;" src="'.$aImages['add'].'"/>Ajouter</button></td>

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Le click sur ton bouton ne fait que sélectionner ou désélectionner tous, je ne voit pas d'ajout d'option ni quoi que ce soit

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Par défaut
    Je n'ai qu'une fonction php que j'appel pour créer mon select avec les options.
    je n'ai pas de fonction qui me permet d'ajouter une nouvelle option.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td style="width:250px; height:250px; margin-bottom:15px;">'.$this->_getSelect($options).'</td>

    C'est donc pour celà j'ai pensé créer une nouvelle fonction en js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     function saveFocusOnSelectOption(){
                  var vobjSel = window.document.getElementById("idSelect");
                  for(var i = 0; i < vobjSel.length; i ++) {
                  var j=vobjSel.options.selectedIndex;
                  alert(j);
                  vobjSel.options[j].selected=true;
                  }
              }

    Le problème: L'alert(j) renvoie tjrs 10,l'index de la dernière option ,quelque soit l'option sélectionnée.

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    1- Montre nous la fonction qui fait l'ajout et le code HTML généré qui va avec .
    2- ça ne sert à rien de mettre le bout de code qui fait la selection dans la boucle
    3-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var j=vobjSel.selectedIndex;

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Par défaut
    Voici m'a fonction d'ajout:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    function addToTab(TabSel1Sel){
                      var Cell;
                      var objTableau = document.getElementById("matable");
                      //Insertion de ligne à la fin du tableau
                      var ligne = objTableau.insertRow(-1);
                      //Insertion du numero de ligne
                      Cell = ligne.insertCell(0);
                      Cell.innerHTML = ligne.rowIndex;
                      //Insertion du diaporama choisi
                      Cell = ligne.insertCell(1);
                      Cell.innerHTML = TabSel1Sel[0][1];
                      //Insertion des diapositive(s) choisi(es)
                      Cell = ligne.insertCell(2);
                      Cell.innerHTML = TabSel1Sel[1][1];
                      vtabSliderSlide.push(TabSel1Sel);
                      //Insertion du bouton supprimer sur chaque ligne
                      Cell = ligne.insertCell(3);
                      var bouton = document.createElement("BUTTON");
                      bouton.innerHTML = "<button onclick=\"deleteRow(ligne);\">supprimer</button>";
                      bouton.type = "button";
                      bouton.value = "Supprimer";
                      bouton.onclick =  function(row){
                         return function() {
                         deleteRow(row);
                         };                     
                      }(ligne);
                      Cell.appendChild(bouton);
              }

  9. #9
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    var bouton = document.createElement("BUTTON");
    bouton.innerHTML = "<button onclick=\"deleteRow(ligne);\">supprimer</button>";
    bouton.type = "button";
    bouton.value = "Supprimer";
    Remplace ça avec vite http://javascript.developpez.com/faq...amps#ajoutName
    On utilise plus le tag button mias input type="button".

    Sinon, je ne vois pas toujours le rapport avec le select

  10. #10
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par sajodia Voir le message
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function addToTab(TabSel1Sel){
       // ...
       var bouton = document.createElement("BUTTON");
       bouton.innerHTML = "<button onclick=\"deleteRow(ligne);\">supprimer</button>";
       // ...
    }
    Un bouton dans... un bouton ?

  11. #11
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Par défaut
    Justement moi aussi je ne vois pas le rapport avec le select.

    Là c'est d'un autre problème que je parle.Comment garder le focus sur une option sélectionné d'un select.

  12. #12
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par sajodia Voir le message
    Comment dois-je faire pour que le focus reste tjrs sur mon option sélectionnée tant que j'en ai pas sélectionné une autre.
    Citation Envoyé par sajodia Voir le message
    Comment garder le focus sur une option sélectionné d'un select.
    Quand tu ne l'as pas touché ou changé de selection depuis javascript, l'option sélectionnée doit toujours être le même .

  13. #13
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Par défaut
    Merci de votre aide Au fait je me compliquais trop la tête.
    J'ai utilisé le code que vous m'aviez ecri ci-dessus.Et ça marche super!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var j=oDiv.selectedIndex;
    //Ajout de l'option
    ......
    //reselectionne l'option
    oDiv.options[j].selected=true;

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

Discussions similaires

  1. Garder le focus sur une CListCtrl
    Par shawn12 dans le forum MFC
    Réponses: 10
    Dernier message: 24/01/2008, 15h24
  2. Garder le focus sur une popup
    Par identifiant_bidon dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/11/2007, 17h12
  3. focus sur une input text
    Par mic79 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/01/2005, 18h06
  4. Focus sur une cellule spécifique d'un DBGrid
    Par danbern dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/11/2004, 19h04
  5. Focus sur une application Windows
    Par mixi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/10/2004, 19h57

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