webForumDet fria alternativet

If-sats som körs oavsett värde

JavaScript

2 svar · 177 visningar · startad av PatrikB

Medlem sedan mars 20002 836 inlägg
Frågan#1

Hello,
så är man här igen :e

Det är så att jag har denna kod:

function boxData(sText, vValue){
	this.text = sText;
	this.value = vValue;
}

var vMan1 = new Array();

vMan1[0] = new boxData("Frame press",1);
vMan1[1] = new boxData("Cab bench",2);
vMan1[2] = new boxData("Drill",3);
vMan1[3] = new boxData("IHS",4);

function populateBox(obj, icase, vgr){
	// alert(icase);
	if (icase=1){
		obj.length = (vgr.length + 1);
		for(n=0;n<vgr.length;n++){
			obj.options[n+1].value = vgr[n].value;
			obj.options[n+1].text = vgr[n].text;
		}
	}else{
		obj.length = 1;
		for(n=0;n<obj.length;n++){
			obj.options[n].value = 0;
			obj.options[n].text = 'Ändrad';
		}
	}
}

I functionen populateBox så vill jag endast fylla en annan listbox om ett visst värde har uppfylts.
Nu är det något som är riktigt galet för if-satsen körs oavsett vilket värde än icase får/har och populerar så fint den andra listboxen.

populateBox anropas i eventet onChange på detta vis:

<SELECT name="select" onChange="populateBox(document.form1.select2,this.options[selectedIndex].value,vMan1);">

hoppas på snar hjälp då jag själv snart ser kors och tvärs huller om buller

cya,
PatrikB

Medlem sedan mars 20002 836 inlägg
#2

he, he .... precis när man postat så ser man vart felet ligger.

hade "glömt" ett = i : if (icase == 1) :r

cya,
PatrikB

Medlem sedan juli 2000534 inlägg
#3

Du måste ha två = när du jämför värden, ett = tilldelar värdet till variabeln vilket gör att if-satsen alltid är sann.

[b]if (icase==1){[/b]

[r] ... och du var snabbare än jag :)

269 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)