SELECT >> DIV >> LE PROBLÈME DANS IE, COMMENT LE RÉSOUDRE

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 2 juin 2006 à 15:41
jbiaussat Messages postés 2 Date d'inscription vendredi 21 septembre 2007 Statut Membre Dernière intervention 4 mars 2010 - 4 mars 2010 à 12:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37901-select-div-le-probleme-dans-ie-comment-le-resoudre

jbiaussat Messages postés 2 Date d'inscription vendredi 21 septembre 2007 Statut Membre Dernière intervention 4 mars 2010
4 mars 2010 à 12:51
ben je parlais de ton tuto en fait,
et la solution est :j'ai mis l'addresse en formw15 et input15
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
4 mars 2010 à 11:46
@JBIAUSSAT c'est quoi ton problème, soit plus explicite ???
jbiaussat Messages postés 2 Date d'inscription vendredi 21 septembre 2007 Statut Membre Dernière intervention 4 mars 2010
3 mars 2010 à 15:52
j'ai juste un pbm, la div n'est pas sur la liste box !?
j'ai mis l'addresse en formw15 et input15 :)
erthi17 Messages postés 3 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 19 octobre 2007
19 oct. 2007 à 14:57
Salutations!!!

Merci pour les commentaires judicieux!

Je viens du monde Flash et losque j'avais un message de validation à placer au dessus d'un formulaire, je générais toujours un écran translucide (btn fond blanc 50%...) entre les couches formulaire et message... ce qui bloquait du coup l'utilisation des contrôles formulaire tant que le message n'était pas explicitement fermé par l'utilisateur...

J'ai voulu donc refaire cette manipulation en HTML / Jacascript / CSS... mais présence du bug IE pour les éléments SELECT...

Mon setup:

1. formulaire HTML
2. DIV Message
2.1 DIV écran translucide 100% de la page noir 50%
2.2 DIV fenêtre avec texte explicatif

Par défaut l'élément DIV Message est à display:none et sur erreur de validation devient display:block... Dans mon cas, même si les éléments SELECT (sous mon DIV Message) deviennent invisibles, l'écran translucide atténue ce désagrément. Sur fermeture du DIV Message, je réaffiche les SELECT préalablement cachés.

Une question de goût et de background quoi!

P.S. Géniale la façon dont tu démontres ta solution!!!!!

A+
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
19 oct. 2007 à 13:38
Bonjour,

la solution des éléments Select à cacher à déjà été exposée dans un autre post (source).
Il y a plusieurs problèmatiques à ta solution :
-que faire si le DIV contient lui même des éléments Select (ils seront cachés)?
-que faire à la fermeture du DIV (lorsqu'il faut refaire apparaître les éléments Select)
si un process de validation d'un formulaire cachait un élément Select, ce dernier va apparaître ???

De plus pour ma part je ne trouve pas très élégant de voir disparaître de ma page une série d'objet !

Nickadele
erthi17 Messages postés 3 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 19 octobre 2007
18 oct. 2007 à 21:26
Juste une petite note pour ajouter qu'il est possible de descendre le délais à 100ms sans affecter le fonctionnement!

A+
erthi17 Messages postés 3 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 19 octobre 2007
18 oct. 2007 à 20:33
Salutations à toutes et à tous!

Personnellement, je n'aime pas trop les frames ni les i-frames... alors j'ai testé une autre solution.

Il semble que le problème de IE ici soit le rafraichissement (comme dans bien d'autre situation). Alors, ma solution est de se servir du setTimeout...

1. cacher les éléments select qui pourraient se trouver sous notre DIV à afficher...
2. appeler la fonction qui affiche notre DIV caché avec un délais... setTimeout("show_DIV()",500); //pour 500ms.

J'avoue que c'est un hack mais... ça fonctionne sans frame.

A+
ELABIDI Messages postés 1 Date d'inscription dimanche 11 janvier 2004 Statut Membre Dernière intervention 17 septembre 2007
17 sept. 2007 à 19:13
Très bon travail! Merci pour la manière de présenter la solution!
korpica Messages postés 10 Date d'inscription mercredi 28 mai 2003 Statut Membre Dernière intervention 8 août 2008
31 juil. 2007 à 22:44
vraiment merci pour le code. J'avais beau chercher sur le net, j'avais trop du mal pour piger le truc, surtout que bcp de site en anglais.

Tes sources m'ont donné le petit plus qui m'a permis de résoudre mon soucis

Un grand merci !
wals69 Messages postés 14 Date d'inscription vendredi 13 juillet 2007 Statut Membre Dernière intervention 2 mai 2008
20 juil. 2007 à 17:59
OK je suis desole
j ai poste ma question dans la partie probleme de compatibilité.
N'hesitez pas à me repondre
Merci
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
20 juil. 2007 à 00:06
Bonjour,
Les questions sont à poser dans le FORUM en sélectionnant bien le bon théme, tu auras plus de chance d'être lu.
A bientôt donc sur le FORUM
Javascript / DHTML / Ajax / JavaScript et le navigateur / Problème de compatibilité
par exemple
wals69 Messages postés 14 Date d'inscription vendredi 13 juillet 2007 Statut Membre Dernière intervention 2 mai 2008
19 juil. 2007 à 15:24
bonjour a tous .
Je ne sais pas si je mets ca dans le bon tuto mais bon desole je ne savais pas ou le mettre.
Alors voila, j ai un probleme d'une de mes fonctions javascript qui fonctionne sur Mozilla mais pas sur IE. Celle-ci me permet d'afficher une balise div ou de la cacher selon la valeur que j'attribues a mon select. voici ma fonction JAVASCRIPT:


function RendVisibleClient(texte)
{
if (texte=="Prive")
window.document.getElementById("test").style.visibility= 'visible';
else
window.document.getElementById("test").style.visibility= 'hidden';
}

et voici ma balise div :






MERCI D AVANCE
tmpdev Messages postés 2 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 14 novembre 2006
6 oct. 2006 à 13:46
J'ai ce problème depuis quelque temps que je ne sais pas du tout comment m'y prendre. Comme nickadele a dit, il n'y a pas beaucoup de soloutions proposées sur interent (voir pas du tout !).

Merci pour le tuto. C'est très bien expliqué avec les pages.

TmpDev.
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
6 juin 2006 à 18:41
Merci à tous pour vos remarques et vos encouragements !

Thierry38080 d'accord avec toi que ce n'est pas d'un niveau de débutant, mais comme cela concerne un problème que l'on peu rencontrer à tout niveau je me suis dit que débutant serait plus adéquat.

Josh666, oui ça pourrait se faire mais comme dit PetoleTeam c'était pas l'objectif premier, de plus si tu observes bien le code j'y ai placé d'autres trucs et astuces, notamment au niveau CSS avec uniquement l'emploi de DIV (pas de tableau) !
Libre à toi de partir de mon code pour en faire une nouvelle source.

Nickadele
josh666 Messages postés 81 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 1 octobre 2007 1
6 juin 2006 à 17:32
Ouais je c'est que c'est une méthode... ma sa serait sympa qu'il developpe une fonction .. parce que plusierus personne votn trouver lourd de devoir essayer d'utilisé sont bout de code alors qu'il s'i connaisse peu en javascript.. mais bon pas grave.. je la developperai moi meme et kan jaurai terminer je la posterai !

++
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
6 juin 2006 à 13:14
J'allais oublier à l'attention de JOSH666...

TOUT à fait raison MAIS il s'agit plus d'une méthode que d'un code rexploitable directement...aussi à chacun de l'adapter, c'est cela aussi l'esprit CodesSources...

;0))
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
6 juin 2006 à 13:08
Félicitations à toi d'avoir eu la patience de la recherche... Peu de personne font encore cela pour le FUN...
Habituellement je ne note pas, pas forcément les compétences, mais cela vaut un 15 d'honneur... voire un VIN d'honneur...
;0)
josh666 Messages postés 81 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 1 octobre 2007 1
5 juin 2006 à 16:55
C'est bien ton truc, sa règle se problème, mais pour rendre l'utilisation plus simple pourquoi ne pas créer une function pour créer des div vollant à la voller avec dans la fonction la vérification du navigateur (si IE générer le div avec le IFRAME)

Bonne continuation !
thierry38080 Messages postés 13 Date d'inscription mardi 14 février 2006 Statut Membre Dernière intervention 10 septembre 2008
3 juin 2006 à 08:55
Bravo nickadele !

Ça fait tellement longtemps que je connais ce problème sous IE que je m'étais résigné...
Bon nombre d'infographistes se sont vus refuser une créa parce que je leur disais toujours : "non c'est pas possible de placer un calque flash par dessus une liste déroulante !"...
Cette époque est maintenant révolus grâce à toi et à ta ténacité !

Merci encore et bravo !

PS : le niveau "débutant" me parait bizarre car je pense bien maîtriser JavaScript et Css depuis 6 ans maintenant, et ça, je connaissais pas...
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
2 juin 2006 à 16:24
Salut Econs,

comme tu dis en plaçant l'IFRAME entre le Select et le DIV, mais pour cela il faut juste s'assurer d'une chose : c'est de mettre l'IFRAME avec un z-index à 0, sans quoi c'est comme si tu avais une vitre devant ton DIV car ton Iframe se positionne par-dessus le DIV, tu le vois mais tu sais pas inter-agir avec !

Il y a d'autres solutions comme celle utilisée pas code-source qui consiste à cacher le select, mais perso je trouvait pas cela très élégant.

Ce qui m'étonne surtout c'est le peu de solution valable disponible sur le net.
Celle que j'ai réalisée découle de 3 longues soirées de recherche pour glanner ça et là une piste de réflexion mais jamais de solution toute faite.

Voilà, j'espere que ça aidera d'autres personnes, pourquoi pas codes-sources ;o)

Nickadele
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
2 juin 2006 à 15:41
Au début, je me demandais ce que pouvait être ce problème de div, mais j'ai rapidement compris.
Sympathique cette façon de présenter le problème !

Donc si j'ai bien compris, une iframe passera toujours au dessus d'un select, donc en plaçant cette iframe entre le select et le div, tu shuntes le souci ...
Rejoignez-nous