<select> Pré-placer la barre de défilement

le lapin

Expert
Bonjour à tous,

Désolé pour le titre pas très parlant, mais je ne savais pas quoi mettre de vraiment parlant.
Je vous explique mon soucis.

J'ai actuellement un formulaire avec dedans une liste, composé de 800 <option> différentes environ.

Cette page peut être appelé par différente page, dont une , qui va envoyé l'option sélectionné par défaut

ce qui devient (je vous épargne le code complet)
799 <option>
et 1 <option selected>

Ma pré-sélection se fait bien.
Mon problème est le suivant: Malgré cette pré-selection, le menu déroulant permettant de naviguer dans ma liste, reste positionné en haut.
Du coup, lorsque vous arrivez sur ma page, vous voyez la liste, mais vous ignorez que vous avez pré-sélectionné des éléments, tant que vous ne vous coltinez pas toute la liste afin de trouver l'option surligné.

J'aimerais savoir, si il est possible de "center" l'élément sélectionné dans la liste de sélection.
Je vous met des images ci-dessous, c'est plus parlant:

Ce que j'ai:
Vous devez être connecté pour voir les images.

Ce que je voudrais:
Vous devez être connecté pour voir les images.
 

Johan_et_Pirlouit

Grand Maître
Une méthode complémentaire est de rappeler juste au-dessus de ton bloc de multi-select la liste des items déjà sélectionnés.. Par PHP (par exemple) c'est assez simple de les indiquer au chargement de la page dans un petit bloc <div> avant ta liste de multi-select, puisque ces items pré-sélectionnés ont été transmis par le formulaire et ont été traités et probablement stockés dans une session ou un truc du genre (si tant est que ce soit comme ça que tu traites les données)..

De cette manière, tu n'auras pas de pb à essayer de jouer avec un focus en JavaScript au chargement de la page, d'autant plus que tu dois alors gérer la possibilité de focus sur plusieurs items ne se trouvant évidemment pas au même endroit de la liste (il faudrait alors traîter sur quel item on fait le focus, même si ça peut probablement être simple à faire)..

Et puis il faut toujours minimiser l'emploi de JS, ne serait-ce que pour tous les navigateurs sur lesquels il est soit désactivé soit simplement pas pris en charge..

:merci:
 

marsien

Grand Maître
Dans le même style d'idée que J&P, pourquoi ne pas "dupliquer" les lignes pré-sélectionnées, et les placer en tête du menu multi-select ? Tu peux toujours rajouter une <option> vide juste en dessous pour les séparer de la liste alphabétique complète.
 

le lapin

Expert
Merci Johan_et_P irlouit

Je vais plutot partir sur cette solution, ca m'évitera d'utiliser JS, et puis ca restera beaucoup plus lisible pour les utilisateurs :)

Merci d'avoir éclairer ma lanterne
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 131
Messages
6 717 954
Membres
1 586 382
Dernier membre
alejandrooo
Partager cette page
Haut