---
title: "Två onchange i samma select?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/143217-två-onchange-i-samma-select"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "G8"
published: "2006-03-01T12:16:25.000Z"
updated: "2006-03-08T17:23:12.000Z"
replies: 17
views: 698
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/143217-två-onchange-i-samma-select"
---

# Två onchange i samma select?

## #1 — G8, 2006-03-01T12:16Z

```
<SELECT NAME="huvud" OnChange="SkapaVal(this.selectedIndex);">
<OPTION VALUE="1">- Select category -</OPTION>
<OPTION VALUE="2">Alt1</OPTION>
<OPTION VALUE="3">Alt2</OPTION>
<OPTION VALUE="4">Alt3</OPTION>
</SELECT>
<SELECT NAME="helptype">
<OPTION VALUE="0">Select category first</OPTION>
</SELECT>
```

detta funkar fin fint, men jag vill nu att om man väljer alternativ 3 så ska den gå till en helt ny sida, men bara om man väljer alternativ 3 alltså... mao en annan onchange action i samma select... möjligt?

//G8

Permalänk: https://www.webforum.nu/p/143217

## #2 — @nders, 2006-03-01T12:18Z

Typ:

```
onchange="if (this.options[this.selectedIndex].value=='3') { location.href='annansida.htm'; } else { SkapaVal(this.selectedIndex); }"
```

Eller så kan du ju ändra funktionen SkapaVal, vad nu det är för något.

Permalänk: https://www.webforum.nu/p/1775905

## #3 — G8, 2006-03-01T12:29Z

super snabeln..

kan man få den att submitta formuläret?

liknande

```
onchange="if (this.options[this.selectedIndex].value=='3') { submit.form.formnamn.method='post' action='bytformulär.asp' } else { SkapaVal(this.selectedIndex); }"
```

eller liknande...?

Permalänk: https://www.webforum.nu/p/1775908

## #4 — @nders, 2006-03-01T12:31Z

Jo. Sätt action och target i form-taggen (är väl enklast). Sedan: 

```
if (this.options[this.selectedIndex].value=='3') { this.form.submit(); } else { SkapaVal(this.selectedIndex); }"
```

Permalänk: https://www.webforum.nu/p/1775909

## #5 — G8, 2006-03-01T12:53Z

Jo, problemet är att det redan ligger en action och target för formuläret i form-taggen.

situationen är så här:

Ett formulär med bl.a. en select där man väljer alternativ 1-3. Väljer man alt1-2 så får man en select till att välja underkategori men hela formuläret är kvar. bara select 2 som uppdateras med möjliga val beroende på om man valt alt1 eller 2.

Väljer man dock alt3 så vill jag att sidan laddas om för att visa ett annat formulär, men behåller den datat som har fyllts i för att kunna populera det nya formuläret...

Finns kanske något enklare sätt att göra det på?

Permalänk: https://www.webforum.nu/p/1775913

## #6 — @nders, 2006-03-01T12:56Z

> Jo, problemet är att det redan ligger en action och target för formuläret i form-taggen.

Jamen säg det då. :)

```
if (this.options[this.selectedIndex].value=='3') { this.form.action='bytformulär.asp'; this.form.target='foo'; this.form.submit(); } else { SkapaVal(this.selectedIndex); }"
```

Permalänk: https://www.webforum.nu/p/1775914

## #7 — G8, 2006-03-01T14:03Z

Verkar funka, vill dock att this.form.target='foo' ska öppnas i det aktiva fönstre... som \_self i HTML om du förstår..

Permalänk: https://www.webforum.nu/p/1775945

## #8 — @nders, 2006-03-01T14:07Z

Prova target=''.

Edit: om du inte har rätt target från början då. Då är det ju bara att strunta i att sätta target i onchange-handlern. 

Mvh

Permalänk: https://www.webforum.nu/p/1775946

## #9 — G8, 2006-03-01T14:19Z

nope, funkar inte... verkar som om den submittar formuläret, men den börjar inte ladda någon sida eller så... skumt..

Permalänk: https://www.webforum.nu/p/1775948

## #10 — @nders, 2006-03-02T04:13Z

Hur ser hela formulärskoden ut nu då?

Permalänk: https://www.webforum.nu/p/1776118

## #11 — G8, 2006-03-07T11:45Z

```
<SCRIPT Language="JavaScript">
<!--

Arrej=new Array(3);
Arrej[0]=new Array(1);
Arrej[1]=new Array(13);
Arrej[2]=new Array(5);
Arrej[3]=new Array(6);
Arrej[4]=new Array(2);
Arrej[5]=new Array(4);
Arrej[6]=new Array(3);
Arrej[7]=new Array(4);
Arrej[8]=new Array(2);

Arrej[0][0]=["Select category first", 0];

Arrej[1][0]=["Set up TV/VCR/DVD", "Audio/Video - Set up TV/VCR/DVD"];
Arrej[1][1]=["Computer W/Projector", "Audio/Video - Computer W/Projector"];
Arrej[1][2]=["Setup Microphone/ Sound System", "Audio/Video - Setup Microphone/ Sound System"];
Arrej[1][3]=["Show a Video/DVD", "Audio/Video - Show a Video/DVD"];
Arrej[1][4]=["Create a Video/DVD", "Audio/Video - Create a Video/DVD"];
Arrej[1][5]=["Edit a Video/DVD", "Audio/Video - Edit a Video/DVD"];
Arrej[1][6]=["Copy a Video/DVD", "Audio/Video - Copy a Video/DVD"];
Arrej[1][7]=["Setup Overhead Projector", "Audio/Video - Setup Overhead Projector"];
Arrej[1][8]=["Video Record an Event", "Audio/Video - Video Record Event"];
Arrej[1][9]=["Video Record an Event and create Video", "Audio/Video - Video Record Event & create Video"];
Arrej[1][10]=["Take Photograph of Event", "Audio/Video - Take Photograph of Event"];
Arrej[1][11]=["Print Photograph", "Audio/Video - Print Photograph"];
Arrej[1][11]=["Clean Equipment", "Audio/Video - Clean Equipment"];
Arrej[1][12]=["Other", "Audio/Video - Other"];

Arrej[2][0]=["Purchase Software", "Software - Purchase Software"];
Arrej[2][1]=["Install Software", "Software - Install Software"];
Arrej[2][2]=["Develop Glossary, Macro etc.", "Software - Develop Glossary, Macro etc."];
Arrej[2][3]=["Microsoft Office assistance", "Software - Microsoft Office assistance"];
Arrej[2][4]=["Other", "Software - Other"];

Arrej[3][0]=["Purchase Equipment", "Hardware - Purchase Equipment"];
Arrej[3][1]=["Move Equipment", "Hardware - Move Equipment"];
Arrej[3][2]=["Borrow Equipment", "Hardware - Borrow Equipment"];
Arrej[3][3]=["Install Equipment", "Hardware - Install Equipment"];
Arrej[3][4]=["Troubleshoot Equipment", "Hardware - Troubleshoot Equipment"];
Arrej[3][5]=["Other", "Hardware - Other"];

Arrej[4][0]=["Start-Up", "Internet at Home - Start-Up"];
Arrej[4][1]=["Other", "Internet at Home - Other"];

Arrej[5][0]=["Helpful Hints", "Landline Phone - Helpful Hints"];
Arrej[5][1]=["Business PIN", "Landline Phone - Business PIN"];
Arrej[5][2]=["Voice Mail", "Landline Phone - Voice Mail"];
Arrej[5][3]=["Service Request", "Landline Phone - Service Request"];

Arrej[6][0]=["Helpful Hints", "Mobile Phone - Helpful Hints"];
Arrej[6][1]=["Voice Mail", "Mobile Phone - Voice Mail"];
Arrej[6][2]=["Service Request", "Mobile Phone - Service Request"];

Arrej[7][0]=["Internet - Add Material", "Internet - Add Material"];
Arrej[7][1]=["Internet - Other", "Internet - Other"];
Arrej[7][2]=["Intranet - Add Material", "Intranet - Add Material"];
Arrej[7][3]=["Intranet - Other", "Intranet - Other"];

Arrej[8][0]=["Data", "Cabling - Data"];
Arrej[8][1]=["Telephone", "Cabling - Telephone"];

function SkapaVal(num)
{

document.val.helptype.options.length = Arrej[num].length;

for(ctr=0;ctr<Arrej[num].length;ctr++)
{
document.val.helptype.options[ctr]=new Option(Arrej[num][ctr][0],Arrej[num][ctr][1]);
}

document.val.helptype.selectedIndex=0;
}
window.onload=function(){
  SkapaVal(document.forms["val"].elements["huvud"].selectedIndex);
}
//-->
</Script>
```

```
<form method="post" action="outputfile.asp" name="val" enctype="multipart/form-data">
<SELECT NAME="huvud" OnChange="if (this.options[this.selectedIndex].value=='10') { this.form.action='logonrequest.asp'; this.form.target=''; this.form.submit(); } else { SkapaVal(this.selectedIndex); }">
<OPTION VALUE="1">- Select category -</OPTION>
<OPTION VALUE="2">Audio/Video</OPTION>
<OPTION VALUE="3">Software</OPTION>
<OPTION VALUE="4">Hardware</OPTION>
<OPTION VALUE="5">Internet at home</OPTION>
<OPTION VALUE="6">Telephone - Landline</OPTION>
<OPTION VALUE="7">Telephone - Mobile</OPTION>
<OPTION VALUE="8">Web</OPTION>
<OPTION VALUE="9">Cabling</OPTION>
<OPTION VALUE="10">Logon request</OPTION>
</SELECT>
<SELECT NAME="helptype">
<OPTION VALUE="0">Select category first</OPTION>
</SELECT>
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="reset" value="Reset">
</form>
```

Permalänk: https://www.webforum.nu/p/1777944

## #12 — @nders, 2006-03-07T11:57Z

Om det där är hela formulärskoden förstår jag att det inte fungerar. Du har ju inga \<form\> och \</form\>-taggar???

Permalänk: https://www.webforum.nu/p/1777949

## #13 — G8, 2006-03-07T12:19Z

sorry, glömde dem... 

uppdaterade koden iaf.

Permalänk: https://www.webforum.nu/p/1777958

## #14 — G8, 2006-03-08T14:50Z

ingen som vet?

Permalänk: https://www.webforum.nu/p/1778421

## #15 — @nders, 2006-03-08T14:51Z

Ta bort enctype ur \<form\>.

Permalänk: https://www.webforum.nu/p/1778422

## #16 — G8, 2006-03-08T15:01Z

jo, men kan inte göra det då användarna även kan ladda upp en fil i formuläret, då behövs väl enctype vara som det är för att själva upload delen ska funka...

Permalänk: https://www.webforum.nu/p/1778425

## #17 — G8, 2006-03-08T15:04Z

helt knasigt, men det verkar funka nu... har inte ändrat nånting... helskumt..

target är: this.form.target=''

Permalänk: https://www.webforum.nu/p/1778426

## #18 — @nders, 2006-03-08T17:23Z

> jo, men kan inte göra det då användarna även kan ladda upp en fil i formuläret,

Hur kan de göra det? Du har ju inget input-element av typen *file*???

Permalänk: https://www.webforum.nu/p/1778462

---

Tråden på webben: https://www.webforum.nu/amne/javascript/143217-två-onchange-i-samma-select
