webForumDet fria alternativet

Två onchange i samma select?

JavaScript

17 svar · 695 visningar · startad av G8

Medlem sedan jan. 20011 213 inlägg
Frågan#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

Medlem sedan juni 200032 967 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.

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

Medlem sedan juni 200032 967 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); }"
Medlem 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å?

Medlem sedan juni 200032 967 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); }"
Medlem 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..

Medlem sedan juni 200032 967 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

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

Medlem sedan juni 200032 967 inlägg
#10

Hur ser hela formulärskoden ut nu då?

Medlem 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>
Medlem sedan juni 200032 967 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???

Medlem sedan jan. 20011 213 inlägg
#13

sorry, glömde dem...

uppdaterade koden iaf.

Medlem sedan jan. 20011 213 inlägg
#14

ingen som vet?

Medlem sedan juni 200032 967 inlägg
#15

Ta bort enctype ur <form>.

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

Medlem 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=''

Medlem sedan juni 200032 967 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???

258 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)