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
    Points : 91 220
    Points
    91 220
    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 ?

  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
    Points : 91 220
    Points
    91 220
    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 ?

  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
    Points : 91 220
    Points
    91 220
    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.

  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
    Points : 91 220
    Points
    91 220
    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 ?

+ 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