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.
Selectbox + skriva ut
11 svar · 290 visningar · startad av Asa
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>
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>
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.
Det övre kör jag på och det funkade fint!
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å?
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]);"
Supertack! Funkade utmärkt bra.
Så bra :)
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?
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;
Återigen tack :)