webForumDet fria alternativet

Två onchange i samma select?

17 svar · 695 visningar · startad av G8

G8Medlem sedan jan. 20011 213 inlägg
#1
<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

@ndersMedlem sedan juni 200032 969 inlägg
#2

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.

G8Medlem sedan jan. 20011 213 inlägg
#3

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...?

@ndersMedlem sedan juni 200032 969 inlägg
#4

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); }"
G8Medlem sedan jan. 20011 213 inlägg
#5

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å?

@ndersMedlem sedan juni 200032 969 inlägg
#6

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); }"
G8Medlem sedan jan. 20011 213 inlägg
#7

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..

@ndersMedlem sedan juni 200032 969 inlägg
#8

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

G8Medlem sedan jan. 20011 213 inlägg
#9

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

@ndersMedlem sedan juni 200032 969 inlägg
#10

Hur ser hela formulärskoden ut nu då?

G8Medlem sedan jan. 20011 213 inlägg
#11
<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>
@ndersMedlem sedan juni 200032 969 inlägg
#12

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

G8Medlem sedan jan. 20011 213 inlägg
#13

sorry, glömde dem...

uppdaterade koden iaf.

G8Medlem sedan jan. 20011 213 inlägg
#14

ingen som vet?

@ndersMedlem sedan juni 200032 969 inlägg
#15

Ta bort enctype ur <form>.

G8Medlem sedan jan. 20011 213 inlägg
#16

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...

G8Medlem sedan jan. 20011 213 inlägg
#17

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

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

@ndersMedlem sedan juni 200032 969 inlägg
#18

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???

138 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)