12. december 2003 - 06:48Der er
6 kommentarer og 1 løsning
Dropdown-menu skjult af input felt
Hej.
Jeg har en almindelig formular (formmail) og en dropdown-menu i toppen af siden. Problemet er at feltet fra formularen ligger over min dropdown-menu. Kan jeg få dropdown-menuen til at ligge øverst, og hvordan gøres det?
Ja og nej. I de nyeste versioner af IE kan du lave lag der ligger 'højere' end de fleste form-felter, men endny er der ingen måde at få noget til at ligge højere end et select felt (dropdown boks) de ligger altid ovenover alt andet og er dermed altid synlige.
Den bedste løsning er at designe siden så der aldrig kommer et lag henover feltets område. Hvis det ikke er muligt kan du evt bruge CSS og give feltet display:none samtidig med at laget vises og skifte tilbage til display:block når laget fjernes igen. det er klumret da du så må sørge for at designet ikke 'trækker sig sammen' omd det forsvundne felt, og hvis noget af feltet rager udover kanten af dit lag kan brugeren undre sig over hvorfor det forsvinder.
Dropdown-menuen: <script language="JavaScript" type="text/JavaScript"> <!-- function mmLoadMenus() { if (window.mm_menu_0909144755_0) return; window.mm_menu_0909144755_0 = new Menu("root",99,16,"Verdana",10,"#0000FF","#FFFFFF","#FFFFFF","#0000FF","left","middle",3,0,300,-5,7,true,true,true,0,false,true); mm_menu_0909144755_0.addMenuItem("Menupunkt"); osv.
Knappen, hvor der skal "droppes" fra: <a href="java script:;" onMouseOver="MM_showMenu(window.mm_menu_0910003620_0,0,16,null,'image3');MM_swapImage('image3','','billede.gif',1);" onMouseOut="MM_startTimeout();MM_swapImgRestore();">
det kan lykkes. funktionen hideSelects() er en javascript funktion du selv skriver, enten med en parameter om der skal skjules eller vises, eller også med en anden funktion showSelects() til at vise lagene igen. Typisk bliver de lavet så de gemmer ALLE selects på siden, også dem der aldrig kommer et lag henover. fx:
function hideSelects() { var df = document.forms; for (var i=0; i<df.length; i++ ) { // for all forms in this page var dfe = df[i].elements; for (var j=0; j<dfe.length; j++ ) { // for all fields in the form if ( dfe[j].type.substr(0,6) == "select" ) { // this is a select field to be hidden dfe[j].style.display = "none"; } } } }// endfunction
pas forresten på med href="java script:;" nogen brovsere vil unloade siden hvis du klikker på sådan et link. det er sikrere at skrive: <a href="" onclick="return false;" ... så sker der garanteret ingenting hvis der bliver klikket.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.