webForumDet fria alternativet

Loopa runt i en selectbox

2 svar · 211 visningar · startad av bwcMikke

bwcMikkeMedlem sedan okt. 2004159 inlägg
#1

Vad är det som går fel i följande kod:

var z=document.forms["form1"].elements
var sumStart=0;
for (var i=0; i<=z.length; i++){
  alert(z.length);
  alert(i);
	if (z[i].type.indexOf('select')!=-1){
		//selectboxar
		l= z[i].length
		  for (var idx=0; idx<=l; idx++){	
			 val=z[i].options[idx].selected
			 if (val){
			      sumStart += parseInt(z[i].options[idx].prisStart)
			 }
		 	 alert("Funkar");		    
		  }
		alert("Funkar inte");		    
     }
alert("Funkar inte");		    
}

document.getElementById("pris").innerHTML= sumStart+" kr";

Det som händer att det kommer upp aen alertbox med texten "19" därefter en med "0", 12 st boxar med "Funkar" och sedan är det slut.
Varför börjar den inte om med "19" och sedan "1" o.s.v.

Är det något skitfel som jag inte hittat?

Ang raden med "prisStart" så är det en egendefinierad egenskap för en tagg, men det är ingen skillnad om jag skriver ex. "sumstart++"

J.N.Medlem sedan apr. 20031 660 inlägg
#2

HEJ!

Första värdet är 0, eftersom det står att i=0 i loopen som utgångsvärde.

Sedan tror jag att du får 12, eftersom du tittar på objekt som är 'select', 19 är alla objekt!

Korrekt?

bwcMikkeMedlem sedan okt. 2004159 inlägg
#3

Jag har 19 olika kontroller (selectboxar, textboxar och knappar) på sidan.
Kontroll nr 0 är en selectbox med 12 element.

Problemet är att den inte går vidare till kontroll 1 och tittar vilken typ av kontroll det är, och om det är en selectbox, loopar alla värden i den för att se hur många och vilka värden som är markerade.

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