login  Naam:   Wachtwoord: 
Registreer je!
 Forum

dropdownbox isopen?

Offline Metalhead - 24/08/2005 10:30
Avatar van MetalheadHTML gevorderde Is er ook een eenvoudige manier om te zien of een bepaalde dropdownbox is geopend?

8 antwoorden

Gesponsorde links
Offline WMtools - 24/08/2005 11:29
Avatar van WMtools Nieuw lid Kan je het misschien beter uitleggen? Zo weet niet snel iemand wat je bedoelt.
Offline Metalhead - 24/08/2005 11:53
Avatar van Metalhead HTML gevorderde Als je een dropdownbox hebt, bijvoorbeeld:
  1. <form name="frm">
  2. <select name="sel">
  3. <option>1
  4. <option>2
  5. </select>
  6. </form>


Kun je dan met een javascript functie kijken of die listbox geopend of gesloten is (dus of er op het driehoekje geklikt is waardoor de lijst weergegeven wordt)?

Zoiets dus bijv.:
  1. if (document.frm.sel.isopen == true) ...

of zoeits:
  1. if (document.frm.sel.listOpen == true) ...
Offline Frederic - 24/08/2005 13:16 (laatste wijziging 24/08/2005 13:17)
Avatar van Frederic PHP ver gevorderde Ik denk niet dat dit gaat, maar ik kan in de verste verte geen situatie indenken waarbij het nuttig is dit te weten, dat de box open is?
//Het gaat wel, want er bestaan JavaScriptjes die bij het SELECTEREN van iets uit een dropdownbox een actie doen, maar het gewoon openen (en niks aanklikken) zal niet lukken, tenzij je gaat werken met een hover op elementen in de dropdownbox, dan is het ongeveer hetzelfde
Offline Metalhead - 24/08/2005 13:44
Avatar van Metalhead HTML gevorderde Is het nuttig om voor jou te weten wat het nut er van is? 

Het nut is dat Perl vastloopt als je een frame refreshd waarbij een dropdownbox geopend is.

Dus in principe kan ik kiezen uit 2 dingen:
Niet refreshen als de list open is, of de list sluiten voor de refresh.

En geen van 2en wil mij lukken 
Offline stenno - 24/08/2005 16:23 (laatste wijziging 24/08/2005 17:11)
Avatar van stenno PHP interesse Heej wat dacht je van:

  1. <html>
  2. <head>
  3. <title>Untitled</title>
  4. <script>
  5.  
  6.  
  7. function a()
  8. {
  9. if (document.frm.sel.value>="2")
  10. {document.write ("Ja deze dropdownbox is geopend")} // vul hier de gewenste functie in als de dropdownbox geopend is
  11. else
  12. {document.write("Nee, deze dropdownbox is niet geopend")}
  13. }
  14. </script>
  15. </head>
  16.  
  17.  
  18. <body>
  19. <form name="frm">
  20. <select name="sel">
  21. <option value="1">1</option> <!-- ik weet dat het niet verplict is maar ik zou je optiontags ook maar sluiten -->
  22. <option value="2">2</option>
  23. <option value="3">3</option>
  24. <option value="4">4</option>
  25. </select>
  26.  
  27. <input type="button" onClick="a()" value="klik hier"> <!--klik hier om te kijken of de dropdownbox geopend is.-->
  28.  
  29. </form>
  30. </body>
  31. </html>


Edit: een kleine verbetering van het script.
Offline Metalhead - 25/08/2005 10:08 (laatste wijziging 25/08/2005 10:34)
Avatar van Metalhead HTML gevorderde Dit werkt natuurlijk niet, omdat de lijst niet eens kan openstaan als je op een button klikt. Zodra je ergens anders klikt, sluit een combinatielijst weer.

Ik had zelf het idee om de focus over te dragen naar een ander element, maar dat mag niet als de lijst openstaat 

Dus toen had ik het volgende idee om dan eerst een waarde te selecteren, en dan de focus over te dragen, maar ook dat werkt niet 

Dit is dus ongeveer wat ik nu heb;
  1. <?
  2. function checkListOpen(screen){
  3. if (screen == "a"){
  4. var locLen = String(parent.monraya.location).length;
  5. var locStr = String(parent.monraya.location).substring(locLen, locLen-12);
  6. }
  7. else{
  8. var locLen = String(parent.monrayb.location).length;
  9. var locStr = String(parent.monrayb.location).substring(locLen, locLen-12);
  10. }
  11. if (locStr != "loading.html") {
  12. if (screen == "a"){
  13. if (parent.monraya.monteurs.rayon.hasfocus==true)
  14. eval("parent.monraya.monteurs.rayon.value."+monrayarayon+".selected=true");
  15. if (parent.monraya.monteurs.viewtype.hasfocus==true)
  16. eval("parent.monraya.monteurs.viewtype.value."+monrayaview+".selected=true");
  17. if (parent.monraya.monteurs.zoom.hasfocus==true)
  18. eval("parent.monraya.monteurs.zoom.value."+monrayazoom+".selected=true");
  19.  
  20. parent.monraya.monteurs.datum.focus();
  21. return parent.monraya.monteurs.datum.hasfocus;
  22. }
  23. else{
  24. ... (niet interessant)
  25. }
  26. }
  27. else{
  28. return true;
  29. }
  30. }
  31.  
  32. if (checkListOpen("a")){
  33. parent.monraya.location="/cgi/krnl_pln_ev.&&extention&&?evaction=monray&screen=a&datum="+monrayadate+"&rayon="+monrayarayon+"&viewtype="+monrayaview+"&zoom="+monrayazoom+setdbcon;
  34. refreshmonraya=false;
  35. }
  36. ?>


(<? en ?> alleen voor de coloring natuurlijk )

EDIT:
Het is me al gelukt door het simpelweg disablen van de selectbox.
Offline stenno - 25/08/2005 16:52
Avatar van stenno PHP interesse
Volgende keer gelijk in het topic ff goed uitleggen wat je bedoelt is wel zo handig :p
Offline Metalhead - 25/08/2005 19:53
Avatar van Metalhead HTML gevorderde Duidelijker als dat zou ik het niet kunnen zeggen. Enkel uitgebreider. Ik wist niet dat dat nodig was.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.273s