Avatar billede -l_jogge_l- Nybegynder
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
Avatar billede ldanielsen Nybegynder
19. juni 2004 - 15:54 #1
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
Avatar billede ldanielsen Nybegynder
19. juni 2004 - 15:56 #2
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
Avatar billede -l_jogge_l- Nybegynder
21. juni 2004 - 08:25 #3
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
Avatar billede ldanielsen Nybegynder
21. juni 2004 - 12:21 #4
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>
Avatar billede -l_jogge_l- Nybegynder
21. juni 2004 - 15:02 #5
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){......
Avatar billede ldanielsen Nybegynder
22. juni 2004 - 00:05 #6
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
Avatar billede -l_jogge_l- Nybegynder
22. juni 2004 - 10:34 #7
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>

&nbsp;<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>
&nbsp;<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>
Avatar billede ldanielsen Nybegynder
22. juni 2004 - 12:56 #8
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>
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester