webForumDet fria alternativet

Selectbox + skriva ut

JavaScriptur Javascript

11 svar · 290 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#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.

Medlem 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>
Medlem 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>
Medlem 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.

Medlem sedan dec. 20011 860 inlägg
#5

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

Medlem 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å?

Medlem 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]);"
Medlem sedan dec. 20011 860 inlägg
#8

Supertack! Funkade utmärkt bra.

Medlem sedan juni 20004 308 inlägg
#9

Så bra :)

Medlem 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?

Medlem 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;
Medlem sedan dec. 20011 860 inlägg
#12

Återigen tack :)

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