webForumDet fria alternativet

Selectbox + skriva ut

11 svar · 290 visningar · startad av Asa

AsaMedlem sedan dec. 20011 860 inlägg
#1

Har en selectbox med datum och vill nu när man väljer ett datum skriva ut det på ett ställe på sidan! Texten ska ändras till den man väljer i selectrutan när man väljer i selectrutan.

JojoxxMedlem sedan juni 20004 308 inlägg
#2

I select-elementet lägger du till:

onChange="document.getElementById('here').innerHTML=this[this.selectedIndex].value;"

och på det ställe på sidan där texten skall hamna:

<span id="here"></span>
AsaMedlem sedan dec. 20011 860 inlägg
#3

Okej :)
Kan man göra om denna så bara datumet följer med i onchange?!

<select name="WeekDate" style="width:100%;" onChange="parent.lunch.location.href=this.options[this.selectedIndex].value;document.getElementById('here').innerHTML=this[this.selectedIndex].value;">
  <option value="lunch_view.asp">-- Välj datum --</option>
  <%firstday = Year(Now) & "-" & Month(Now) & "-01"
  fweek = datepart("ww", now)
  If fweek > 1 Then
     startday = DateAdd("d",8-weekday(firstday,vbmonday),firstday)
  Else
     startday = DateAdd("d",-6-weekday(firstday,vbmonday),firstday)
  End if

  startday = dateadd("ww",weekno,startday)
  For d = startday To startday + 4%>
    <option value="lunch_view.asp?search=datum&datum=<%=d%>"><%=UCase(Left(WeekDayName(WeekDay(d)),1)) & LCase(Mid(WeekDayName(WeekDay(d)),2))%> (<%=day(d)%>/<%=Month(Now)%>)</option>
  <%Next%>
</select>
JojoxxMedlem sedan juni 20004 308 inlägg
#4

Prova med:

onChange="document.getElementById('here').innerHTML=this[this.selectedIndex].value.split('datum=')[1];"

eller:

onChange="document.getElementById('here').innerHTML=this[this.selectedIndex].text;"

om du hellre vill ha listvalets text.

AsaMedlem sedan dec. 20011 860 inlägg
#5

Det övre kör jag på och det funkade fint!

AsaMedlem sedan dec. 20011 860 inlägg
#6

Men om jag vill att dagens datum ska stå vid span när sidan laddas. Hur skriver jag då?

Och går det att göra om datumet till fredag 10 oktober istället för 2003-10-10. Värdet måste fortfarande vara 2003-10-10 i värdena i selectrutan.

Sen i min selectlista har jag en tom och när jag väljer den står det ju undefined. Hur fixar jag det oxå?

JojoxxMedlem sedan juni 20004 308 inlägg
#7

Så här exempelvis. Lägg till:

<script type="text/javascript">
var days=["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"];
var months=["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"];
function showDate(str){
	if(str){
		var d=(str=="now")?new Date():new Date(str.split("-")[0],parseInt(str.split("-")[1])-1,str.split("-")[2]);
	}
	document.getElementById('here').innerHTML=(str)?days[d.getDay()]+" "+d.getDate()+" "+months[d.getMonth()]:"";
}
window.onload=function(){ showDate("now"); }
</script>

och ändra:

onChange="showDate(this[this.selectedIndex].value.split('datum=')[1]);"
AsaMedlem sedan dec. 20011 860 inlägg
#8

Supertack! Funkade utmärkt bra.

JojoxxMedlem sedan juni 20004 308 inlägg
#9

Så bra :)

AsaMedlem sedan dec. 20011 860 inlägg
#10

Om jag bara vill ha så måndag till fredag finns med i koden du skrev och när det blir lördag så visas måndagens datum nästa vecka istället. Hur skulle koden då se ut?

JojoxxMedlem sedan juni 20004 308 inlägg
#11

På raden efter var d=... lägger du till:

d=(d.getDay()==6)?new Date(d.getTime()+172800000):d;
d=(d.getDay()==0)?new Date(d.getTime()+86400000):d;
AsaMedlem sedan dec. 20011 860 inlägg
#12

Återigen tack :)

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