Just nu i M3-nätverket
Gå till innehåll

få <select> att behålla värde?


bmwjohan

Rekommendera Poster

jag har skrivit lite kod där användaren får välja lite saker ur <select><option> grejer och när han har valt klart postar man <form>'en och gör lite beräkningar.

 

jag skulle vilja att det som användaren har valt i <select><option> står kvar i rulllistan när sidan har laddats om.

 

vad skriver jag för att få rulllistan att behålla sitt utseende/värde?

Länk till kommentar
Dela på andra webbplatser

Tjena!

 

Det är bara att skriva "selected" i den option som ska vara förvald.

 

<select>
<option value="hejsan">inte vald
<option value="svejsan" selected>vald
</select>

 

/ Johan

 

[inlägget ändrat 2002-08-19 16:00:31 av Nollis]

Länk till kommentar
Dela på andra webbplatser

 

nej jag menade inte så.

 

jag menar att användaren väljer ett värde.

sidan laddas om.

då vill jag att det värdet som användaren har valt ska stå kvar i rulllistan som valt värde.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Tjena!

 

I princip är det inte möjligt att göra det, men möjligen i praktiken... ;)

 

Prova att sätta en cookie vid onChange eventet på selectboxen, samt att när sidan laddas om, sätta selectedIndex baserat på vad som finns i cookien.

 

Det är det minst komplicerade sätt som jag kan komma på, för att kringå det faktum att de val, som görs i ett formulär, i de flesta browsers, återställs till utgångsläget när man gör en reload...

 

/ Johan

 

Länk till kommentar
Dela på andra webbplatser

Christoffer Eklund

Hej, du kan alltid skicka det som en QueryString och fånga upp det.

 

I ditt javascript får du se till att du skickar med rätt parameter. om du har en onChange funktion kan den se ut nåt sånt här:

 

<script>

function valj(intId){

location.href="vad.asp?vad" + intId;

}

</script>

 

Och din <select> så här:

<select name="valj" onChange="valj(this.value)">

<option value="1"<%if request("vad") = "1" then%> selected<%end if%>>val 1

<option value="2"<%if request("vad") = "2" then%> selected<%end if%>>val 2

</select>

 

vad.asp får du byta ut mot vad din sida heter. Om du tex skulle välja val 2 nu i dropdownen så skulle sidan få url:en vad.asp?vad=2 och "val 2" skulle vara förvalt.

 

hoppas du fattar.

 

/doffe

 

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Tjena!

 

Fint, men din lösning förutsätter att man vid varje val i selectsatsen laddar om sidan. Som jag förstod kravspecen, skulle man inte behöva göra det. Nedan ett exempel på mitt tidigare lösningsförslag;

 

Reflexion: Efter att ha läst "kravspecen" en gång till inser jag att det kanske är precis din lösning som efterfrågas... Jag trodde det handlade om att bevara valda värden i det fall användaren laddar om formuläret... (Jag är inte längre så tvärsäker på att det var det som efterfrågades, men min lösning på DET problemet tycker jag är ganska genial! ;)

 

<html>
<body onload="this.document.hejsan.svejsan.selectedIndex=<%=Request.Cookies("selection")%>;">

<script language="JavaScript1.2">
function set_cookie(expression){
time = new Date();

document.cookie = "selection=" + expression + ";";
document.cookie += "expires=" + cookieDate(time + 24*60*60*1000);
}
</script>

<form name="hejsan">
<select name="svejsan" onChange="set_cookie(this.selectedIndex);">
<option value="hopp">hopp</option>
<option value="sopp">sopp</option>
<option value="topp">topp</option>
<option value="kopp">kopp</option>
</select>
</form>

</body>
</html>

 

/ Johan

 

[inlägget ändrat 2002-08-19 16:52:01 av Nollis]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...