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 :

Liste déroulante multiple : scroller jusqu'à l'option sélectionnée


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut Liste déroulante multiple : scroller jusqu'à l'option sélectionnée
    Salut,

    j'ai donc une liste déroulante multiple et je présélectionne une valeur dedans.
    Mon but est de scroller automatiquement jusqu'à l'option sélectionnée pour que celle-ci soit visible directement.
    ex : si j'ai une liste de 1 à 50 et que je préselectionne 45, et que la taille de ma liste est de 10 lignes, je serais obligé de défiler à la main pour voir qu'une option est sélectionnée.
    Je suis pas sur d'être très clair ^^

    Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Par défaut
    J'ai pas trouvé l'attribut ou la fonction miracle.
    Donc j'ai écrit ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    window.onload = function() { 
     
    var sel=document.getElementById('mon_select');    	// le select...
    var opt_select=sel.selectedIndex; 	// on garde la valeur de l'option selectionnée par défaut
     
     
    sel.selectedIndex=sel.options.length-1;			// on descend jusqu'à la fin de la liste (pour que l'option ne se retrouve pas en bas.. c'est plus joli...)	
    sel.selectedIndex=opt_select;				// on remonte jusqu'à l'option sléectionnée par défaut
     
    };

  3. #3
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Je trouve l'idée excellente, merci
    Par contre ca ne fonctionne que sous FF, dommage.

  4. #4
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    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
    29
    30
    31
    32
    33
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
    <script type='text/javascript'>
    function selectedvisible(index){
     
    var Obj=document.getElementById('sel')
    if(index>Obj.options.length-1){return false;}
    if(index+Obj.size<Obj.options.length){
    			Obj.selectedIndex=index+Obj.size;
    			Obj.selectedIndex=index;
    			}
    else{Obj.selectedIndex=Obj.options.length-Obj.size;
     		Obj.selectedIndex=index;}
     
    }
    </script>
    </head>
     
    <body>
    <select id='sel' size=10 >
    <script type='text/javascript'>
    for(i=0; i<100;i++){document.write("<option>"+i+"</option>");}
    </script>
    </select>
    <input type='text' id="item" />
    <input type="button" onclick="selectedvisible(document.getElementById('item').value)" value="selection"/>
     
    </script>
     
    </html>
    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 !

  5. #5
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Merci pour l'aide, ca fait une heure que je galère ^^
    Mais au final cela ne fonctionne pas dans le cas d'une liste avec la propriété multiple à true. ex :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    <select id="authors" size="5" multiple="true">
    <option value="433">POUILLON Christian </option>
    <option value="434">POUPARD Paul (Mgr)</option>
    <option value="435">POURTALES (de) Guy </option>
    <option value="436">RABINE Henri </option>
    <option value="437">RAMPOLLA del TINDARO Ida </option>
    <option value="438">RAMUZ Charles-Ferdinand </option>
    <option value="440" selected="selected">RAY Lionel </option>
    <option value="441">REGAMEY Pie </option>
    <option value="442">REITH-BRONNER F. </option>
    <option value="443">REMOND René </option>
    <option value="453">RIVIÈRE Jacques </option>
    <option value="454">ROBBEN C. </option>
    <option value="455">ROBERT Pierre-Edmond </option>
    </select>
     
    <script type='text/javascript'>
    function scrollToSelectedIndex()	{
    	var Obj = document.getElementById('authors');
    	var index = Obj.selectedIndex;
    //window.alert(index); // ?????????
    	if(index > Obj.options.length - 1)	{
    		return false;
    	}
    	if(index + Obj.size < Obj.options.length)	{
    		Obj.selectedIndex = index + Obj.size;
    		Obj.selectedIndex = index;
    	}
    	else	{
    		Obj.selectedIndex = Obj.options.length - Obj.size;
    		Obj.selectedIndex = index;
    	}
    }
     
    scrollToSelectedIndex();
    </script>
    Là où c'est très louche c'est que cela fonctionne (FF2/IE6) si j'ajoute un window.alert().
    Donc si quelqu'un y comprend quelque chose ca m'intéresse
    Merci

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Par défaut
    Citation Envoyé par Djakisback
    Je trouve l'idée excellente, merci
    Par contre ca ne fonctionne que sous FF, dommage.
    J'ai testé sous FF22 et IE7.
    Je vois pas ce qui pourrait géner le fonctionnement du script sous IE6...

  7. #7
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Effectivement, je me suis planté ca fonctionne mais uniquement si je mets l'appel de la fonction dans le onLoad du body mais j'ai besoin de mettre l'appel juste après la liste déroulante. Je ne sais pas si c'est possible.

  8. #8
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    heu pourquoi cette nécessité de le mettre juste àprès le select ???
    a priori oui si tu mets le script juste àprès le selct celuici etant instancié, le script devrait fonctionner ...
    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 !

Discussions similaires

  1. liste déroulante multiple
    Par lbar012001 dans le forum IHM
    Réponses: 0
    Dernier message: 26/11/2007, 15h09
  2. [SQL] Liste déroulante multiple et requête SQL
    Par laetiheu dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/08/2007, 14h32
  3. Liste déroulante multiple
    Par Alex70 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 17/04/2007, 15h07
  4. Liste déroulante multiple
    Par Sam 069 dans le forum IHM
    Réponses: 4
    Dernier message: 22/02/2007, 13h48
  5. liste déroulante multiple
    Par laurent jarry dans le forum Access
    Réponses: 1
    Dernier message: 25/07/2006, 13h36

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