Hur ska datumet vara formaterat?
När sidan med formuläret laddas vill jag att dagens datum, månad och aktuell tid (för surfarens system) ska vara förvalda i respektive lista. Hur gör man det?
17 svar · 306 visningar · startad av bigsky
När sidan med formuläret laddas vill jag att dagens datum, månad och aktuell tid (för surfarens system) ska vara förvalda i respektive lista. Hur gör man det?
Hur ska datumet vara formaterat?
Dagarna ska stå som siffror med en nolla innan om talet är mindre än 9, samma med månaderna. Tiden ska vara i formatet 1300, 1400 osv.
Ungefär så här kanske
<form name="myform">
Datum
<select name="datum">
<script type="text/javascript">for(var n=1;n<32;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"\">"+((n>9)?n:"0"+n)+"</option>"); }</script>
</select>
Månad
<select name="manad" onChange="rebuildManad(this.form);">
<script type="text/javascript">for(var n=1;n<13;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"\">"+((n>9)?n:"0"+n)+"</option>"); }</script>
</select>
Tid
<select name="tid">
<script type="text/javascript">for(var n=0;n<24;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"00\">"+((n>9)?n:"0"+n)+"00</option>"); }</script>
</select>
</form>
<script type="text/javascript">
function rebuildManad(obj){
var d=new Date(); d=new Date(d.getFullYear(),obj.manad.selectedIndex+1,0).getDate();
obj.datum.length=d;
for(var n=0;n<d;n++){
obj.datum[n].value=obj.datum[n].text=(n<9)?"0"+(n+1):n+1;
}
}
document.forms['myform'].elements['datum'].selectedIndex=new Date().getDate()-1;
document.forms['myform'].elements['manad'].selectedIndex=new Date().getMonth();
document.forms['myform'].elements['tid'].selectedIndex=new Date().getHours();
rebuildManad(document.forms['myform']);
</script>
Ja, varför inte? :) Även om inte alla options skrivs ut (när man tittar i källkoden från webbläsaren) antar jag att det valda värdet går att skicka vidare till en annan sida.
Sen undrar jag över en annan sak. Varför skrivs följande ut (när man tittar i källkoden från webbläsaren) och vad betyder det?
<script language="JavaScript">
<!--
function SymError()
{
return true;
}
window.onerror = SymError;
//-->
</script>
bigsky skrev:
Ja, varför inte? Även om inte alla options skrivs ut (när man tittar i källkoden från webbläsaren) antar jag att det valda värdet går att skicka vidare till en annan sida.
Javisst :)
bigsky skrev:
Varför skrivs följande ut ...
Gör det...? Det är inte någonting som ditt webhotell automatiskt lägger till?
Nej, det skrivs ut om jag kör det lokalt.
Du har möjligen inte Norton Internet Security installerat?
Jo
Där har du boven :) Det är NIS som lägger till det för att förhindra att felmeddelanden visas. Hur man kommit fram till att detta skall göra tillvaron säkrare för surfare är däremot ett mysterium.
Ok, då spinner vi vidare. Om man har två uppsättningar med datum, månad och tid i varje. Och väljer tex. den 8:e som datum i första uppsättningen, då vill jag att datumet i listen i andra uppsättningen ska ändras till en dag efter valt datum, i detta fall den 9:e. Hur?
<form name="myform">
Datum
<select name="datum" onChange="update2(this.form);">
<script type="text/javascript">for(var n=1;n<32;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"\">"+((n>9)?n:"0"+n)+"</option>"); }</script>
</select>
Månad
<select name="manad" onChange="rebuildManad(this,this.form.datum); update2(this.form);">
<script type="text/javascript">for(var n=1;n<13;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"\">"+((n>9)?n:"0"+n)+"</option>"); }</script>
</select>
Tid
<select name="tid" onChange="update2(this.form);">
<script type="text/javascript">for(var n=0;n<24;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"00\">"+((n>9)?n:"0"+n)+"00</option>"); }</script>
</select>
<br/>
Datum
<select name="datum2">
<script type="text/javascript">for(var n=1;n<32;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"\">"+((n>9)?n:"0"+n)+"</option>"); }</script>
</select>
Månad
<select name="manad2" onChange="rebuildManad(this,this.form.datum2);">
<script type="text/javascript">for(var n=1;n<13;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"\">"+((n>9)?n:"0"+n)+"</option>"); }</script>
</select>
Tid
<select name="tid2">
<script type="text/javascript">for(var n=0;n<24;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"00\">"+((n>9)?n:"0"+n)+"00</option>"); }</script>
</select>
</form>
<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['manad'].selectedIndex,obj.elements['datum'].selectedIndex+2);
obj.elements['datum2'].length=d.getDate();
for(var n=0;n<d.getDate();n++){
obj.elements['datum2'][n].value=obj.elements['datum2'][n].text=(n<9)?"0"+(n+1):n+1;
}
obj.elements['datum2'].selectedIndex=d.getDate()-1;
obj.elements['manad2'].selectedIndex=d.getMonth();
obj.elements['tid2'].selectedIndex=obj.elements['tid'].selectedIndex;
}
window.onload=function(){
document.forms['myform'].elements['datum'].selectedIndex=new Date().getDate()-1;
document.forms['myform'].elements['manad'].selectedIndex=new Date().getMonth();
document.forms['myform'].elements['tid'].selectedIndex=new Date().getHours();
rebuildManad(document.forms['myform'].elements['manad'],document.forms['myform'].elements['datum']);
update2(document.forms['myform']);
}
</script>
Jo, det glömde jag. Väljer man tex. månad 10 i första månads-listen ska även värdet i den andra månads-listen flyttas fram till samma månad.
Umm.... det gör den. (sköts av onchange-eventet och funktionen update2() )
Ah det gör den ju. Hade kvar en bit av den första koden du postade på en annan sida...
Men när man laddar sidan går datumet i andra listen bara till ett mer än datumet i den första listen. Alla datum i den valda månaden får gärna synas vid laddning av sidan.
Också, om man väljer ett datum i andra uppsättningen som är tidigare än dagens datum, ska månaden i andra uppsättningen hoppa fram till nästa månad.
Ursäkta, en liten bug :)
<form name="myform">
Datum
<select name="datum" onChange="update2(this.form);">
<script type="text/javascript">for(var n=1;n<32;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"\">"+((n>9)?n:"0"+n)+"</option>"); }</script>
</select>
Månad
<select name="manad" onChange="rebuildManad(this,this.form.datum); update2(this.form);">
<script type="text/javascript">for(var n=1;n<13;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"\">"+((n>9)?n:"0"+n)+"</option>"); }</script>
</select>
Tid
<select name="tid" onChange="update2(this.form);">
<script type="text/javascript">for(var n=0;n<24;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"00\">"+((n>9)?n:"0"+n)+"00</option>"); }</script>
</select>
<br/>
Datum
<select name="datum2">
<script type="text/javascript">for(var n=1;n<32;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"\">"+((n>9)?n:"0"+n)+"</option>"); }</script>
</select>
Månad
<select name="manad2" onChange="rebuildManad(this,this.form.datum2);">
<script type="text/javascript">for(var n=1;n<13;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"\">"+((n>9)?n:"0"+n)+"</option>"); }</script>
</select>
Tid
<select name="tid2">
<script type="text/javascript">for(var n=0;n<24;n++){ document.write("<option value=\""+((n>9)?n:"0"+n)+"00\">"+((n>9)?n:"0"+n)+"00</option>"); }</script>
</select>
</form>
<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['manad'].selectedIndex,obj.elements['datum'].selectedIndex+2);
obj.elements['datum2'].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['datum2'][n].value=obj.elements['datum2'][n].text=(n<9)?"0"+(n+1):n+1;
}
obj.elements['datum2'].selectedIndex=d.getDate()-1;
obj.elements['manad2'].selectedIndex=d.getMonth();
obj.elements['tid2'].selectedIndex=obj.elements['tid'].selectedIndex;
}
window.onload=function(){
document.forms['myform'].elements['datum'].selectedIndex=new Date().getDate()-1;
document.forms['myform'].elements['manad'].selectedIndex=new Date().getMonth();
document.forms['myform'].elements['tid'].selectedIndex=new Date().getHours();
rebuildManad(document.forms['myform'].elements['manad'],document.forms['myform'].elements['datum']);
update2(document.forms['myform']);
}
</script>
... med reservation, det är trots allt fredagkväll... :D
Javisst, ingen fara. Jag e mycket tacksam för all hjälp. Själv ska man snart iväg för att jobba hela natten...
Tack för hjälpen. Jag är mycket nöjd.