webForumDet fria alternativet

Javascript select

5 svar · 395 visningar · startad av Flow

FlowMedlem sedan dec. 200283 inlägg
#1

Har ett script som kollar län och stad. När man väljer län så öppnas en ny selectbox upp med alla kommuner. Jag skulle vilja ha en funktion som jag anropar genom t.ex. setAktiv("lan[12]", "Norrtälje") och då skall funktionen först välja Stockholms län och sedan skall den skapa innehåll (som den gör om man väljer Stockholms Län) i kommunselectboxen och därefter markera Norrtälje.

Har försökt ett tag nu men det går inte :(... Klipper ner det mesta utav koden, tror ni förstår hur den är uppbyggd..

SCRIPT:

<script language="javaScript">
<!--
function selectObjectSet(){
	this.value = new Array();
	this.text  = new Array();
}

var lan = new Array()
lan[0]  = new selectObjectSet() // Län 0 (Välj län)
lan[1]  = new selectObjectSet() // Län 1 (Blekinge län)
lan[2]  = new selectObjectSet() // Län 2 (Dalarnas län)
lan[3]  = new selectObjectSet() // Län 3 (Gotlands län)
lan[4]  = new selectObjectSet() // Län 4 (Gävleborgs län)
lan[5]  = new selectObjectSet() // Län 5 (Hallands län)
lan[6]  = new selectObjectSet() // Län 6 (Jämtlands län)
lan[7]  = new selectObjectSet() // Län 7 (Jönköpings län)
lan[8]  = new selectObjectSet() // Län 8 (Kalmar län)
lan[9]  = new selectObjectSet() // Län 9 (Kronobergs län)
lan[10] = new selectObjectSet() // Län 10 (Norrbottens län)
lan[11] = new selectObjectSet() // Län 11 (Skåne län)
lan[12] = new selectObjectSet() // Län 12 (Stockholms län)
lan[13] = new selectObjectSet() // Län 13 (Södermanlands län)
lan[14] = new selectObjectSet() // Län 14 (Uppsala län)
lan[15] = new selectObjectSet() // Län 15 (Värmlands län)
lan[16] = new selectObjectSet() // Län 16 (Västerbottens län)
lan[17] = new selectObjectSet() // Län 17 (Västernorrlands län)
lan[18] = new selectObjectSet() // Län 18 (Västmanlands län)
lan[19] = new selectObjectSet() // Län 19 (Västra Götalands län)
lan[20] = new selectObjectSet() // Län 20 (Örebro län)
lan[21] = new selectObjectSet() // Län 21 (Östergötlands län)
lan[22] = new selectObjectSet() // Län 22 (Utomlands)

	// Län 0 txt
	lan[0].text[0] = "Välj län"

		// Län 0 värde
		lan[0].value[0] = "0"

	// Län 1 txt
	lan[1].text[0] = "Välj kommun"
	lan[1].text[1] = "Karlshamn"
	lan[1].text[2] = "Karlskrona"
	lan[1].text[3] = "Olofström"
	lan[1].text[4] = "Ronneby"
	lan[1].text[5] = "Sölvesborg"

		// Län 1 värde
		lan[1].value[0] = "0"
		lan[1].value[1] = "Karlshamn" 
		lan[1].value[2] = "Karlskrona"
		lan[1].value[3] = "Olofström" 
		lan[1].value[4] = "Ronneby"   
		lan[1].value[5] = "Sölvesborg"

	// Län 12 txt
	lan[12].text[0] = "Välj kommun"
	lan[12].text[1] = "Botkyrka"
	lan[12].text[2] = "Danderyd"
	lan[12].text[3] = "Ekerö"
	lan[12].text[4] = "Haninge"
	lan[12].text[5] = "Huddinge"
	lan[12].text[6] = "Järfälla"
	lan[12].text[7] = "Lidingö"
	lan[12].text[8] = "Nacka"
	lan[12].text[9] = "Norrtälje"
	lan[12].text[10] = "Nykvarn"
	lan[12].text[11] = "Nynäshamn"
	lan[12].text[12] = "Salem"
	lan[12].text[13] = "Sigtuna"
	lan[12].text[14] = "Sollentuna"
	lan[12].text[15] = "Solna"
	lan[12].text[16] = "Stockholm"
	lan[12].text[17] = "Sundbyberg"
	lan[12].text[18] = "Södertälje"
	lan[12].text[19] = "Tyresö"
	lan[12].text[20] = "Täby"
	lan[12].text[21] = "Upplands Väsby"
	lan[12].text[22] = "Upplands-Bro"
	lan[12].text[23] = "Vallentuna"
	lan[12].text[24] = "Vaxholm"
	lan[12].text[25] = "Värmdö"
	lan[12].text[26] = "Österåker"

		// Län 12 värde
		lan[12].value[0] = "0"
		lan[12].value[1] = "Botkyrka"   
		lan[12].value[2] = "Danderyd"   
		lan[12].value[3] = "Ekerö"      
		lan[12].value[4] = "Haninge"    
		lan[12].value[5] = "Huddinge"   
		lan[12].value[6] = "Järfälla"   
		lan[12].value[7] = "Lidingö"    
		lan[12].value[8] = "Nacka"      
		lan[12].value[9] = "Norrtälje"  
		lan[12].value[10] = "Nykvarn"       
		lan[12].value[11] = "Nynäshamn"     
		lan[12].value[12] = "Salem"         
		lan[12].value[13] = "Sigtuna"       
		lan[12].value[14] = "Sollentuna"    
		lan[12].value[15] = "Solna"         
		lan[12].value[16] = "Stockholm"     
		lan[12].value[17] = "Sundbyberg"    
		lan[12].value[18] = "Södertälje"    
		lan[12].value[19] = "Tyresö"        
		lan[12].value[20] = "Täby"          
		lan[12].value[21] = "Upplands Väsby"
		lan[12].value[22] = "Upplands-Bro"  
		lan[12].value[23] = "Vallentuna"    
		lan[12].value[24] = "Vaxholm"       
		lan[12].value[25] = "Värmdö"        
		lan[12].value[26] = "Österåker"     

function uppdateraKommun(target,store) { 
      store = eval(store) 
      target.options.length = store.text.length 
      for(var i=0;i<store.text.length;i++) { 
           target.options[i].text  = store.text[i] 
           target.options[i].value = store.value[i] 
      } 
      document.form.kommun.focus(); 
      } 
      
     //-->
</script>

html:

<form>
	<table>
	<tr><td><font face=verdana size=1>Län:</td>		<td>
	<select name="lan" onChange="uppdateraKommun(document.form.kommun,this.options[this.selectedIndex].value)">
		<option value="lan[0]">Välj Län</option>
		<option value="lan[1]">Blekinge län
		<option value="lan[2]">Dalarnas län
		<option value="lan[3]">Gotlands län
		<option value="lan[4]">Gävleborgs län
		<option value="lan[5]">Hallands län
		<option value="lan[6]">Jämtlands län
		<option value="lan[7]">Jönköpings län
		<option value="lan[8]">Kalmar län
		<option value="lan[9]">Kronobergs län
		<option value="lan[10]">Norrbottens län
		<option value="lan[11]">Skåne län
		<option value="lan[12]">Stockholms län
		<option value="lan[13]">Södermanlands län
		<option value="lan[14]">Uppsala län
		<option value="lan[15]">Värmlands län
		<option value="lan[16]">Västerbottens län
		<option value="lan[17]">Västernorrlands län
		<option value="lan[18]">Västmanlands län
		<option value="lan[19]">Västra Götalands län
		<option value="lan[20]">Örebro län
		<option value="lan[21]">Östergötlands län
		<option value="lan[0]">- - - - - - - - - - - - - 
		<option value="lan[22]">Utomlands
	</select></td></tr>
	<tr><td><font face=verdana size=1>Kommun:</td>		<td><select name="kommun">
									<option value="0">Välj kommun</option>
									</select>
								</td></tr>
</table>
</form>

Vore asschysst om någon orkade ta sig tid och svara :)

//Flow

Jesper TMedlem sedan nov. 20017 058 inlägg
#2

Välkommen till WF
Kan du inte lägga in defaultvärdet i <body onload=....>

Var vänlig och lägg in kod mellan [kod]-taggar, då blir den mindre och det blir inga obehagliga radbrytningar.

JohnsenMedlem sedan juli 2000718 inlägg
#3

prova detta:

function setAktiv(lan,kommun){
	for (var i=0; i<document.form.lan.options.length; i++){
		if(document.form.lan.options[i].value== lan ){
			document.form.lan.options[i].selected=true;break;
		}
	}

	uppdateraKommun(document.form.kommun,lan);

	for (var j=0; j<document.form.kommun.options.length; j++){
		if(document.form.kommun.options[j].value== kommun ){
			document.form.kommun.options[j].selected=true;break;
		}
	}
}
FlowMedlem sedan dec. 200283 inlägg
#4

Det fungerade tack!!!!

Jesper TMedlem sedan nov. 20017 058 inlägg
#5

Är det ett "fritt script" så skulle det vara just om du kunde lägga upp det här på WF under: script - javascript, Dhtml :)

FlowMedlem sedan dec. 200283 inlägg
#6

Det är inte mitt script från början och jag har bara gjort några mindre ändringar tyvärr...

130 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
127 ms — hämta tråd, inlägg och bilagor (db)