Mutt
01-18-2002, 06:40 PM
here's a quick javascript to add to the calendar_enterevent template so that the day of the month dropdown is adjusted when you change the month or year so that days like Feb 31 aren't available choices. it even recognizes leap years.
goto it from http://javascript.internet.com and adjusted it to work with vb
open the template
add this right before the </head> tag
<SCRIPT LANGUAGE="JavaScript">
//function for returning how many days there are in a month including leap years
function DaysInMonth(WhichMonth, WhichYear) {
var DaysInMonth = 31;
if (WhichMonth == "4" || WhichMonth == "6" || WhichMonth == "9" || WhichMonth == "11") DaysInMonth = 30;
if (WhichMonth == "2" && (WhichYear/4) != Math.floor(WhichYear/4)) DaysInMonth = 28;
if (WhichMonth == "2" && (WhichYear/4) == Math.floor(WhichYear/4)) DaysInMonth = 29;
return DaysInMonth;
}
//function to change the available days in a months
function ChangeOptionDays() {
Month = document.vbform.month[document.vbform.month.selectedIndex].value;
Year = document.vbform.year[document.vbform.year.selectedIndex].value;
DaysForThisSelection = DaysInMonth(Month, Year);
CurrentDaysInSelection = document.vbform.day.length;
if (CurrentDaysInSelection > DaysForThisSelection) {
for (i=0; i<(CurrentDaysInSelection-DaysForThisSelection); i++) {
document.vbform.day.options[document.vbform.day.options.length - 1] = null
}
}
if (DaysForThisSelection > CurrentDaysInSelection) {
for (i=0; i<(DaysForThisSelection-CurrentDaysInSelection); i++) {
NewOption = new Option(document.vbform.day.options.length + 1);
document.vbform.day.add(NewOption);
}
}
if (document.vbform.day.selectedIndex < 0) document.vbform.day.selectedIndex == 0;
}
</script>
add
onchange="javascript:ChangeOptionDays()"
to the month select field and the year select field
done
goto it from http://javascript.internet.com and adjusted it to work with vb
open the template
add this right before the </head> tag
<SCRIPT LANGUAGE="JavaScript">
//function for returning how many days there are in a month including leap years
function DaysInMonth(WhichMonth, WhichYear) {
var DaysInMonth = 31;
if (WhichMonth == "4" || WhichMonth == "6" || WhichMonth == "9" || WhichMonth == "11") DaysInMonth = 30;
if (WhichMonth == "2" && (WhichYear/4) != Math.floor(WhichYear/4)) DaysInMonth = 28;
if (WhichMonth == "2" && (WhichYear/4) == Math.floor(WhichYear/4)) DaysInMonth = 29;
return DaysInMonth;
}
//function to change the available days in a months
function ChangeOptionDays() {
Month = document.vbform.month[document.vbform.month.selectedIndex].value;
Year = document.vbform.year[document.vbform.year.selectedIndex].value;
DaysForThisSelection = DaysInMonth(Month, Year);
CurrentDaysInSelection = document.vbform.day.length;
if (CurrentDaysInSelection > DaysForThisSelection) {
for (i=0; i<(CurrentDaysInSelection-DaysForThisSelection); i++) {
document.vbform.day.options[document.vbform.day.options.length - 1] = null
}
}
if (DaysForThisSelection > CurrentDaysInSelection) {
for (i=0; i<(DaysForThisSelection-CurrentDaysInSelection); i++) {
NewOption = new Option(document.vbform.day.options.length + 1);
document.vbform.day.add(NewOption);
}
}
if (document.vbform.day.selectedIndex < 0) document.vbform.day.selectedIndex == 0;
}
</script>
add
onchange="javascript:ChangeOptionDays()"
to the month select field and the year select field
done