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 :

Select Multiple : focus sur les éléments


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut Select Multiple : focus sur les éléments
    Bonjour , j'utilise la fonction suivante :

    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
    function scrollToSelectedIndex()	{
    	var Obj_groupe_a	= document.getElementById('groupe_a_select');
    	var Obj_groupe_b	= document.getElementById('groupe_b_select');
    	if(Obj_groupe_a.options[value].text != ""){
    		if(Obj_groupe_b.options[value].text != ""){		
    			var Obj = Obj_groupe_b;
    		}
    		else{
    			var Obj	= Obj_groupe_a;
    		}
    	}
    	var index = Obj.selectedIndex;
    	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;
    	}
    }
    Pour établir le focus sur 2 selects multiples. Le Deuxième est rempli selon le choix dans le premier.
    Dans les 2 cas, la value du premier élément "en-tête" est vide

    Je ne parvient pas à obtenir le bon résultat.
    Dernière modification par Bovino ; 20/06/2014 à 14h12. Motif: Réduction d'indentation : merci de penser à ceux qui lisent le code...

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(Obj_groupe_a.options[value].text != "")
    Elle sort d'où la variable value ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Invité
    Invité(e)
    Par défaut
    je l'ai zappé mais value="Obj_groupe_a.selectedIndex" dans le premier cas et "Obj_groupe_b.selectedIndex" dans le second
    Dernière modification par Bovino ; 20/06/2014 à 15h18. Motif: Inutile de citer un message pour y répondre !

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(Obj_groupe_a.options[value].text != "")
    Et il se passe quoi si tu n'entres pas dans cette condition ?
    Obj vaut quoi dans ce cas ?

    Sinon
    Je ne parvient pas à obtenir le bon résultat
    certes, mais tu obtiens quoi au juste ? Et tu devrais obtenir quoi ?
    As-tu un message dans la console ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Invité
    Invité(e)
    Par défaut
    Grace a votre précédent message j'ai résolu le prioblème, j'ai remplacé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(Obj_groupe_a.options[Obj_groupe_a].value!= "")
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(Obj_groupe_a.options[Obj_groupe_a].value != ""){
    Dernière modification par Bovino ; 20/06/2014 à 15h27. Motif: Inutile de citer un message pour y répondre !

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Si c'est juste le value que tu cherches, if(Obj_groupe_a.value != "") est amplement suffisant.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Invité
    Invité(e)
    Par défaut
    Merci, ça me permet aussi de rendre mon code plus digeste
    Dernière modification par Bovino ; 20/06/2014 à 15h52. Motif: Inutile de citer un message pour y répondre !

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Si c'est juste le value que tu cherches, if(Obj_groupe_a.value != "") est amplement suffisant.
    Bonjour,

    J'ai une derniere question.

    Dans le cadre d'un select multiple , seule la première option reste sélectionné, je pensais remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    		var index = Obj.selectedIndex;
     
    		if(index > Obj.options.length - 1)	{
    			return false;
    		}
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    		var index = [];
     
    		for(var i=0; i< Obj.options.length; i++)
    		{
    			if(Obj.options[i].selected)
    			{
    				index.push(Obj.options[i]);
    			}
    		}
    		if(index.length > 0){   
    			return false;
    		}
    mais ne sais pas trop comment faire pour la suite du code.

    J'ai testé ça

    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
    37
    38
    39
     
    	function scrollToSelectedIndex2()	{
    		var Obj_groupe_rfo	= document.getElementById('groupe_rfo_select');
    		var Obj_groupe_visu	= document.getElementById('groupe_visu_select');
     
    		// Selection du formulaire
    		if(Obj_groupe_rfo.value != ""){
    			if(Obj_groupe_visu.value != ""){		
    				var Obj = Obj_groupe_visu;
    			}
    			else{
    				var Obj	= Obj_groupe_rfo;
    			}
    		}
    		// Sauvegarde des index sélectionnés
    		var index = new Array();
     
    		for(var i=0; i< Obj.options.length; i++)
    		{
    			if(Obj.options[i].selected == true)
    			{
    				index.push(i);
    			}
    		}
    		if(index.length > 0){   
    			return false;
    		}
     
    		for(i = selectedIndex.length - 1; i >= 0; i--)	{
    			if(index[i] + Obj.size < Obj.options.length){
    				Obj.selectedIndex = index[i] + Obj.size;
    				Obj.selectedIndex = index[i];
    			}
    			else{
    				Obj.selectedIndex = Obj.options.length - Obj.size;
    				Obj.selectedIndex = index[i];
    			}
    		}
    	}
    qui me re selectionne bien les valeurs mais la scrollbar ne reste pas sur la première valeur
    Dernière modification par Invité ; 23/06/2014 à 08h56.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Après de multiples essais je pense que c'est tout simplement impossible. Je clos le sujet

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    mais la scrollbar ne reste pas sur la première valeur
    Ah... ton problème était juste de positionner la barre de scroll ? C'est bien de le dire juste avant de clore la discussion !

    Tu as essayé avec un simple scrollIntoView ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

Discussions similaires

  1. obtention de multiples warnings sur les sessions
    Par Jesmar dans le forum Langage
    Réponses: 4
    Dernier message: 19/04/2007, 14h39
  2. [XSLT] somme sur les éléments d'un sous arbre
    Par Raumfahrerralf dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 17/03/2007, 16h23
  3. Pb de focus sur les zones de textes sous Firefox
    Par dumber dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/02/2007, 09h19
  4. Focus sur un élément d'une combobox
    Par zoidy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/06/2006, 18h17
  5. Focus sur les boutons avec plusieurs formulaire
    Par davids21 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/04/2005, 15h48

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