18. juni 2004 - 15:07
Der er
7 kommentarer og 1 løsning
En comboBox ændre andet indhold?
Hvis man nu vil have en Combo til at ændre valgmuligheder i eks andre Comboboxe eller ændre et billed, hvordan gør man så det???
Jeg har et eks:
http://www.flexperte.com/flexperte_en_fr.html
Annonceindlæg fra Netic
Først og fremmest er det event'en onChange du skal bruge: <select name="selectNavn" onChange="doChanges();"> og så er det option-objectet du skal bruge var nyOption = new Option("Teksten her!", "value_her"); document.formNavn.selectNavn.options[i] = nyOption; - hvor i er den plads du vil tilføje den på Du sletter en option med: document.formNavn.selectNavn.options[i] = null; Håber at det kan sætte dig igang
Oh! Det er ASP-kategorien, og så viser jeg dig hvordan man kan lave det clientside. Men mon ikke det er det du har brug for? Blot skal al data som kan blive relevant udskrives i javascriptet, som arrays for eksempel
Ok... ka du ikke lave et eks? Hvis man eks ændre ComboBoxen: T1 så skal indholdet i T2 ændres og et billed image1.jpg skal blive til image2.jpg
OK, her er en lille demo Den laver lidt forskelligt, så du kan se mulighederne: Først checkker den hvilken option i T1 der er valgt. I dette eks. gør den kun noget hvis option med value 2 vælges. Så ændrer den først på en eksisterende option, den første (index 0); dens text og value ændres. Derefter slettes den anden option (index 1). Så dannes en helt ny option nederst i T2 Den 3. option vælges - og billedet ændres Håber du kan hitte ud af det <form name=formName> <select name="T1" onChange="changeSelect(this, this.form);"> <option value=1>Value 1</option> <option value=2>Value 2</option> <option value=3>Value 3</option> </select> <p> <select name="T2" onChange="changeSelect(this);"> <option value=1>Value 1</option> <option value=2>Value 2</option> <option value=3>Value 3</option> </select> <p> <img name="Image1" src="image1.jpg"> <script language="JavaScript"> function changeSelect(objSelect, objForm){ var theSelectedValue = objSelect.options[objSelect.selectedIndex].value; if (theSelectedValue == 2){ objForm.T2.options[0].text = "Ny value 1"; objForm.T2.options[0].value = "11"; objForm.T2.options[1] = null; objForm.T2.options[objForm.T2.options.length] = new Option("Ny options text", "123456") objForm.T2.options[2].selected = true; document.Image1.src = "image2.jpg"; } } </script> </form>
Hvordan skal den så se ud, hvis jeg nu har 2 positioner at vælge noget ud fra? Altså if (theSelectedValue == 2){...... if (theSelectedValue == 1){......
Jah, logikken i det kender du jo bedre end mig, men ja, hvis det der skal ske er afhængig af hvad der vælges, så er det nok sådan du skal gøre det. Hvis du ikke kan få det til at virke kan du jo poste lidt kode og forklare hvad der skal ske, så kan jeg se på det
Har fundet ud af hvordan skidtet virker tror jeg se lige her: <html> <head> <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Ny side 1</title> </head> <body> <form name=formName> <select name="T1" onChange="changeSelect(this, this.form);"> <option value=1>Value 1</option> <option value=2>Value 2</option> <option value=3>Value 3</option> </select><p> <select name="T2" onChange="changeSelect(this);"> <option selected value=" 0.1">0.1</option> <option value="0.2">0.2</option> <option value="0.3">0.3</option> </select><p> <img name="Image1" src="1.gif" width="172" height="110"> <script language="JavaScript"> function changeSelect(objSelect, objForm){ var theSelectedValue = objSelect.options[objSelect.selectedIndex].value; if (theSelectedValue == 2){ objForm.T2.options[0].text = "2.1"; objForm.T2.options[0].value = "2.1"; objForm.T2.options[1].text = "2.2"; objForm.T2.options[1].value = "2.2"; objForm.T2.options[2].text = "2.3"; objForm.T2.options[2].value = "2.3"; document.Image1.src = "2.gif"; } if (theSelectedValue == 1){ objForm.T2.options[0].text = "1.1"; objForm.T2.options[0].value = "1.1"; objForm.T2.options[1].text = "1.2"; objForm.T2.options[1].value = "1.2"; objForm.T2.options[2].text = "1.3"; objForm.T2.options[2].value = "1.3"; document.Image1.src = "1.gif"; } if (theSelectedValue == 3){ objForm.T2.options[0].text = "3.1"; objForm.T2.options[0].value = "3.1"; objForm.T2.options[1].text = "3.2"; objForm.T2.options[1].value = "3.2"; objForm.T2.options[2].text = "3.3"; objForm.T2.options[2].value = "3.3"; document.Image1.src = "3.gif"; } } </script> </form> </body> </html>
Ja det er rigtigt! Men hvis der er så enkelt et system i det kan du spare en masse linier ved at gøre sådan: <script language="JavaScript"> function changeSelect(objSelect, objForm){ var theSelectedValue = objSelect.options[objSelect.selectedIndex].value; objForm.T2.options[0].text = theSelectedValue + ".1"; objForm.T2.options[0].value = theSelectedValue + ".1"; objForm.T2.options[1].text = theSelectedValue + ".2"; objForm.T2.options[1].value = theSelectedValue + ".2"; objForm.T2.options[2].text = theSelectedValue + ".3"; objForm.T2.options[2].value = theSelectedValue + ".3"; document.Image1.src = theSelectedValue + ".gif"; } </script>
Kurser inden for grundlæggende programmering