Ga naar inhoud

[JS] select >> onChange javascript functie


anoniem

Aanbevolen berichten

Hi, Je kent ze wel, van die javascript dropdowns / selects die onChange naar een pagina doorverwijzen (zoals hieronder in het forum). Nu vroeg ik me af of er ook een manier is om onChange een javascript functie uit te voeren. Dus onChange de functie editThis() uitvoeren, maar in dezelfde dropdown ook onChange andere functies uitvoeren. (Hoe) Is dit mogelijk?
Link naar reactie
Welkom op het forum ! Zoiets ? [code:1:ee3821e1da] <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <SCRIPT language=JavaScript> function doe_iets(val) { switch (val) { case 'kleur': document.bgColor = '#FF0000' break case 'pagina': document.location.href = "http://www.google.nl" break case 'hallo': alert("Hallo, alles goed ?") break } } </SCRIPT> <body bgcolor="#FFFFFF" text="#000000"> <select name="lijstje" onchange=javascript:doe_iets(this.value)> <option value="kleur">Wijzig Kleur</option> <option value="pagina">Ga naar pagina</option> <option value="hallo">Zeg hallo</option> </select> </body> [/code:1:ee3821e1da]
Link naar reactie
Thanks voor het welkom heten! Uhm ja, dat is wel waar ik zo'n beetje naar op zoek ben. Maar kan ik ook onder die case een ander functie aanroepen / meerdere statements afgaan, dus: [code:1:4858b581ab] case 'kleur': if ( dit == dat ) alert ('blaat') else alert ('blaaaaat') break; [/code:1:4858b581ab] Daarnaast moet ik soms bijvoorbeeld een id meegeven, bijvoorbeeld editThis ( 4 ), waarbij 4 de pagina ID is. kan ik deze op de een of andere manier ook nog meegeven?
Link naar reactie
Dat kan, zo bijvoorbeeld : [code:1:c2d219b6a3] <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <SCRIPT language=JavaScript> function doe_iets(array) { var my_array=array.split(","); var id = my_array[1]; switch (my_array[0]) { case 'kleur': if (id == '##00FF00') {alert("groen is een mooie kleur he ?")}; document.bgColor = id; break case 'pagina': document.location.href = id break case 'hallo': alert("Hallo "+id+" alles goed ?") break } } </SCRIPT> <body bgcolor="#FFFFFF" text="#000000"> <select name="lijstje" onchange=javascript:doe_iets(this.value)> <option value="kleur,##00FF00">Wijzig Kleur groen</option> <option value="kleur,##FF0000">Wijzig Kleur rood</option> <option value="pagina,http://www.google.nl">Ga naar pagina</option> <option value="hallo,meneer de koekepeer">Zeg hallo</option> </select> </body> [/code:1:c2d219b6a3]
Link naar reactie
n.a.v. het antwoord van Error404: [list=1:42867f24b3] [*:42867f24b3]in een eventhandler hoort geen [color=blue:42867f24b3]"javascript:"[/color:42867f24b3], het moet dus zijn: [color=blue:42867f24b3]onchange="doe_iets()"[/color:42867f24b3] [*:42867f24b3]om meerdere bewerkingen in een eventhandler uit te voeren kan je deze ook scheiden met een punt-komma, bijv: [color=blue:42867f24b3]onchange="doe_iets(); en_iets_anders();" [/color:42867f24b3] [*:42867f24b3]de geselecteerde value van de SELECT behoor je op te halen met [color=blue:42867f24b3]this.options[this.selectedIndex].value[/color:42867f24b3] als het netjes wil doen [/list:o:42867f24b3]
Link naar reactie
Ok annie ! Je hebt gelijk [code:1:2fc732f80a] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> <meta http-equiv = "Content-Type" content = "text/html; charset=iso-8859-1"> <SCRIPT type = "text/javascript"> function doe_iets(array) { var my_array = array.split(","); var id = my_array[1]; switch (my_array[0]) { case 'kleur': if (id == '#00FF00'){ alert("groen is een mooie kleur he ?") } ; document.bgColor = id; break case 'pagina': document.location.href = id break case 'hallo': alert("Hallo " + id + " alles goed ?") break } } </SCRIPT> </head> <body> <select name = "lijstje" onchange = "doe_iets(this.options[this.selectedIndex].value)"> <option value = "kleur,#00FF00"> Wijzig Kleur groen</option> <option value = "kleur,#FF0000"> Wijzig Kleur rood</option> <option value = "pagina,http://www.google.nl"> Ga naar pagina</option> <option value = "hallo,meneer de koekepeer"> Zeg hallo</option> </select> </body> [/code:1:2fc732f80a]
Link naar reactie
@Error404: Ik had alleen even de punten die van toepassing waren voor meneer de koekepeer (what's in a name) genoemd. Dus als je nog wat meer verbeteringen wil doorvoeren dan staat hieronder nog wat gratis advies :D Dit werkt wel, [code:1:f33beecedc]document.bgColor = "#RRGGBB";[/code:1:f33beecedc]maar als ik de [url=http://www.devguru.com/Technologies/ecmascript/quickref/doc_bgcolor.html]javascript references[/url] mag geloven dan zou je alleen de hexadecimalen moeten vermelden. [code:1:f33beecedc]document.bgColor = "RRGGBB";[/code:1:f33beecedc] Verder is deze wijze van aanspreken van document eigenschappen een beetje ouderwets. Als je helemaal hip :wink: wil zijn dan stuur je het document aan via de DOM (Document Object Model). Er zijn meerdere methoden waarop je dat kan aanpakken (maar niet alles wordt even goed ondersteund door de verschillende browsers: [url=http://www.quirksmode.org/index.html?/dom/w3c_core.html]een overzichtje[/url]), maar een veel geziene versie is dan: [code:1:f33beecedc]document.getElementsByTagName("BODY")[0].style.backgroundColor = "#RRGGBB";[/code:1:f33beecedc] De [i:f33beecedc]location [/i:f33beecedc]wijzig je via het [i:f33beecedc]window [/i:f33beecedc]object en niet via het [i:f33beecedc]document [/i:f33beecedc], dat is hartstikke deprecated/fout. [code:1:f33beecedc]window.location.href = "index.html";[/code:1:f33beecedc]
Link naar reactie
[quote:7ad8f04c61="maIRnaairruJ"]is de correcte syntax van een hexwaarde in javascript, of iig ecma-262 niet 0xRRGGBB? document.bgColor = 0xRRGGBB;[/quote:7ad8f04c61] Om een hexadecimale waarde te schrijven is 0x00 inderdaad de juiste methode, daarin heb je gelijk. Alleen wordt een kleur opgegeven in 3 hexadecimalen: 0xRR, 0xGG en 0xBB (en dat is dus wat anders dan 0xRRGGBB). Daarnaast verwacht de bgColor property een string-waarde en geen getal.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...