Non conosco bene la sintassi di Javascript, potreste dirmi cosa modificare per fare in modo che una volta selezionato un mese, questo non venga resettato a reflash di pagina con il mese corrente.
Grazie per la disponibilità
<script language="JavaScript">
function setDate(str) {
if (str == " ") {
return;
}
mnth1 = document.forms[0].month.value;
mnth = mnth1;
mnth++;
year = document.forms[0].year.value;
dateStr = str+"/"+mnth+"/"+year;
dateStr = trim(dateStr);
document.forms[1].dateField.value = dateStr;
document.forms[1].dateFields.value = dateStr;
}//setDate()
/**
* The function removes spaces from the selected date.
*/
function trim(str) {
res="";
for(var i=0; i< str.length; i++) {
if (str.charAt(i) != " ") {
res +=str.charAt(i);
}
}
return res;
}//trim()
/**
* The method to get the Month name given the Month number of the year.
*/
function getMonthName(mnth) {
if (mnth == 0) {
name = "Gen";
}else if(mnth==1) {
name = "Feb";
}else if(mnth==2) {
name = "Mar";
}else if(mnth==3) {
name = "Apr";
}else if(mnth==4) {
name = "Mag";
} else if(mnth==5) {
name = "Giu";
} else if(mnth==6) {
name = "Lug";
} else if(mnth==7) {
name = "Ago";
} else if(mnth==8) {
name = "Set";
} else if(mnth==9) {
name = "Ott";
} else if(mnth==10) {
name = "Nov";
} else if(mnth==11) {
name = "Dic";
}
return name;
}//getMonthName()
/**
* Get the number of days in the month based on the year.
*/
function getNoOfDaysInMnth(mnth,yr) {
rem = yr % 4;
if(rem ==0) {
leap = 1;
} else {
leap = 0;
}
noDays=0;
if ( (mnth == 1) || (mnth == 3) || (mnth == 5) ||
(mnth == 7) || (mnth == 8) || (mnth == 10) ||
(mnth == 12)) {
noDays=31;
} else if (mnth == 2) {
noDays=28+leap;
} else {
noDays=30;
}
//alert(noDays);
return noDays;
}//getNoOfDaysInMnth()
/**
* The function to reset the date values in the buttons of the
* slots.
*/
function fillDates(dayOfWeek1,noOfDaysInmnth) {
for(var i=1; i<43; i++) {
str = "s"+i;
document.forms[0].elements[str].value=" ";
}
startSlotIndx = dayOfWeek1;
slotIndx = startSlotIndx;
for(var i=1; i<(noOfDaysInmnth+1); i++) {
slotName = "s"+slotIndx;
val="";
if (i<10) {
val = " "+i+" ";
} else {
val = i;
}
document.forms[0].elements[slotName].value = val;
slotIndx++;
}
}//fillDates()
/**
* The function that is called at the time of loading the page.
* This function displays Today's date and also displays the
* the calendar of the current month.
*/
function thisMonth() {
dt = new Date();
mnth = dt.getMonth(); /* 0-11*/
dayOfMnth = dt.getDate(); /* 1-31*/
dayOfWeek = dt.getDay(); /*0-6*/
yr = dt.getFullYear(); /*4-digit year*/
//alert("month:"+(mnth+1)+":dayofMnth:"+dayOfMnth+": dayofweek:"+dayOfWeek+":year:"+yr);
mnthName = getMonthName(mnth)+ " ";
document.forms[0].month.value = mnth;
document.forms[0].year.value = yr;
document.forms[0].currMonth.value = mnth;
document.forms[0].currYear.value = yr;
document.forms[0].monthYear.value = mnthName+yr;
document.forms[1].dateField.value = dayOfMnth+"/"+(mnth+1)+"/"+yr;
startStr = (mnth+1)+"/1/"+yr;
dt1 = new Date(startStr);
dayOfWeek1 = dt1.getDay(); /*0-6*/
noOfDaysInMnth = getNoOfDaysInMnth(mnth+1,yr);
fillDates(dayOfWeek1+1,noOfDaysInMnth);
}//thisMonth()
/**
* The function that will be used to display the calendar of the next month.
*/
function nextMonth() {
var currMnth = document.forms[0].month.value;
currYr = document.forms[0].year.value;
if (currMnth == "11") {
nextMnth = 0;
nextYr = currYr;
nextYr++;
} else {
nextMnth=currMnth;
nextMnth++;
nextYr = currYr;
}
mnthName = getMonthName(nextMnth);
document.forms[0].month.value=nextMnth;
document.forms[0].year.value=nextYr;
document.forms[0].monthYear.value= mnthName+" "+nextYr;
str = (nextMnth+1)+"/1/"+nextYr;
dt = new Date(str);
dayOfWeek = dt.getDay();
noOfDays = getNoOfDaysInMnth(nextMnth+1,nextYr);
fillDates(dayOfWeek+1,noOfDays);
}//nextMonth()
/**
* The method to display the calendar of the previous month.
*/
function prevMonth() {
var currMnth = document.forms[0].month.value;
currYr = document.forms[0].year.value;
if (currMnth == "0") {
prevMnth = 11;
prevYr = currYr;
prevYr--;
} else {
prevMnth=currMnth;
prevMnth--;
prevYr = currYr;
}
str = (prevMnth+1)+"/1/"+prevYr;
dt = new Date(str);
dayOfWeek = dt.getDay();
/***********************************************
* Remove the comment if do not want the user to
* go to any previous month than this current month.
***********************************************/
/*
runningMonth = document.forms[0].currMonth.value;
rMonth=runningMonth;
rMonth++;
runningYear = document.forms[0].currYear.value;
rYear=runningYear;
str = (rMonth)+"/1/"+rYear;
dt1 = new Date(str);
if (dt.valueOf() < dt1.valueOf()) {
alert('Cannot Go Before Current Month');
return;
}
*/
/**************************************************
* End of comment
**************************************************/
mnthName = getMonthName(prevMnth);
document.forms[0].month.value=prevMnth;
document.forms[0].year.value=prevYr;
document.forms[0].monthYear.value= mnthName+" "+prevYr;
noOfDays = getNoOfDaysInMnth(prevMnth+1,prevYr);
fillDates(dayOfWeek+1,noOfDays);
}//prevMonth()
</script>