webForumDet fria alternativet

Fel i koden lr?

2 svar · 167 visningar · startad av bigsky

bigskyMedlem sedan maj 2002821 inlägg
#1

Är det någon som kan se något fel i följande kod?

<script type="text/javascript">
	function rebuildManad(mobj,dobj){
	var d=new Date(new Date().getFullYear(),mobj.selectedIndex+1,0).getDate();
	dobj.length=d;
	for(var n=0;n<d;n++){
		dobj[n].value=dobj[n].text=(n<9)?"0"+(n+1):n+1;
	  }
    }
    function update2(obj){
	var d=new Date(new Date().getFullYear(),obj.elements['outwardmonth'].selectedIndex,obj.elements['outwarddate'].selectedIndex+2);
	obj.elements['returndate'].length=new Date(d.getFullYear(),d.getMonth()+1,0).getDate();
	for(var n=0;n<new Date(d.getFullYear(),d.getMonth()+1,0).getDate();n++){
		obj.elements['returndate'][n].value=obj.elements['returndate'][n].text=(n<9)?"0"+(n+1):n+1;
	}
	obj.elements['returndate'].selectedIndex=d.getDate()-1;
	obj.elements['returnmonth'].selectedIndex=d.getMonth();
	obj.elements['returntime'].selectedIndex=obj.elements['outwardtime'].selectedIndex;
    }
    window.onload=function(){
	document.forms['frmMyTravel'].elements['outwarddate'].selectedIndex=new Date().getDate()-1;
	document.forms['frmMyTravel'].elements['outwardmonth'].selectedIndex=new Date().getMonth();
	document.forms['frmMyTravel'].elements['outwardtime'].selectedIndex=new Date().getHours();
	rebuildManad(document.forms['frmMyTravel'].elements['outwardmonth'],document.forms['frmMyTravel'].elements['outwarddate']);
	update2(document.forms['frmMyTravel']);
    }
    </script>

IE klagar på att 'elements.returndate' är null eller inte ett objekt.

bigskyMedlem sedan maj 2002821 inlägg
#2

Det löste sig... man ska inte anropa en funktion som inte behövs.

Nexus86Medlem sedan okt. 20023 030 inlägg
#3

1. Vad är obj? (Gissar form)
2. Vad är returndate? (Gissar select)

Sedan tycker jag att denna rad ser lite flummig ut men jag är väl inte direkt världsbäst på javascript.

obj.elements['returndate'][n].value=obj.elements['returndate'][n].text=(n<9)?"0"+(n+1):n+1;

Tror det borde vara:

obj.elements['returndate'][n].value=((n<9)?'0'+(n+1):n+1);

Detta förutsätter såklart att returndate är en select som jag gissar samt att Option-objektet obj.elements['returndate'][n] redan existerar?

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