webForumDet fria alternativet

Ange värde i select

5 svar · 330 visningar · startad av MickeA.com

MickeA.comMedlem sedan feb. 20034 441 inlägg
#1

Tjena
Har sökt i JS forumet utan att hitta det jag söker efter.
Jag har en select-lista med ett gäng språk, som ser ut såhär:

<select name="offer_desc_lang" class="w_150" onchange="return change_lang(this[this.selectedIndex].value, 1, 'SVE');">
<option value="SVE" selected="selected">SVE</option>
<option value="ENG">ENG</option>
<option value="FIN">FIN</option>
<option value="POL">POL</option>
<option value="RUS">RUS</option>
<option value="GER">GER</option>
<option value="FRA">FRA</option>
<option value="ITA">ITA</option>
<option value="SPA">SPA</option>
<option value="EST">EST</option>
</select>

Det hela är inkluderat i en texteditor, i rullistan väljer man vilket språk man vill "hoppa" till.
Det som strular är funktionen change_lang() som anropas när man väljer något annat än det som är valt i listan:

<!--
function change_lang(lang, offer_id, lang_code){
	if(lang != 0){
		if(confirm("Ev. ändringar kommer inte att sparas, vill du fortsätta?\n")){
			window.location.href= "adm_offers_edit_foo.asp?do=edit_site&offer_id=" + offer_id + "&lang_code=" + lang + "&layout=admin";
			return true;
		}
		return false;
//		document.add_key_form.offer_desc_lang.selectedLabel.text = lang_code;
	}	
}
//-->

Det som händer när man byter språk är att en confirm() dyker upp och frågar "Ev. ändringar kommer inte att sparas, vill du fortsätta?". Trycker man "Ok" så kommer man till det språk man valt, trycker man "Avbryt" så stannar man kvar vid ursprungsspråket.
Problemet är att om det står "SVE" i min select och man väljer "ENG" och sedan trycker på avbryt, så stannar man kvar vid sidan för "SVE", bara det att det står "ENG" i min select.

Så, det jag vill göra är att genom funktionen åter sätta det aktuella värdet som selected=""selected"" om man trycker avbryt.
Har testat några olika varianter, så som selectedLabel resp. selectedIndex, men kan inte särskilt mycket javascript, så kommer inte på vad som krävs.

Vore bra om någon visste hur jag ska lösa det här, tack!

aasahMedlem sedan mars 20034 471 inlägg
#2

En lösning är att sätta en variabel som håller i de värden som gäller "nu" när sidan laddas. Och inte ändra dess värde förrän du tryckt OK. Då kan du ju nämligen hämta informationen om vilket språk som fortfarande ska gälla från den variabeln.

MickeA.comMedlem sedan feb. 20034 441 inlägg
#3

Jo, om du kollar funktionen ovan som anropas på selected onChange() så ser du att jag redan skickar med det aktuella språket som ska sättas _om_ man trycker avbryt.
return change_lang(this[this.selectedIndex].value, 1, 'SVE');

'SVE' sist i funktionsanropet är alltså det språk som ska sättas när man trycker 'Avbryt'.
Det jag har problem med är att sätta själva värdet som SELECTED med javascript.

MickeA.comMedlem sedan feb. 20034 441 inlägg
#4

Nu har jag googlat lite till och kommit på ungefär hur jag måste göra, däremot vet jag inte hur jag ska göra.

Jag måste leta reda på 'Index' för det sista argumentet i funktionen, 'lang_code'.
Sen måste jag sätta detta värdet till '.selected=true;'.

Men det återstår alltså, hur ser syntaxen ut?

MickeA.comMedlem sedan feb. 20034 441 inlägg
#5

Ingen som kan tänkas veta hur jag ska bära mig åt?

MickeA.comMedlem sedan feb. 20034 441 inlägg
#6

Här finns svaret jag sökte efter:
http://www.webforum.nu/showthread.php?p=1169110#post1169110

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