vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Member Archives (https://vborg.vbsupport.ru/forumdisplay.php?f=202)
-   -   Calendar - day of month dropdown auto adjusted (https://vborg.vbsupport.ru/showthread.php?t=34242)

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
PHP Code:

<SCRIPT LANGUAGE="JavaScript">
//function for returning how many days there are in a month including leap years
function DaysInMonth(WhichMonthWhichYear) {
  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(MonthYear);
  
CurrentDaysInSelection document.vbform.day.length;
  if (
CurrentDaysInSelection DaysForThisSelection) {
    for (
i=0i<(CurrentDaysInSelection-DaysForThisSelection); i++) {
      
document.vbform.day.options[document.vbform.day.options.length 1] = null
    
}
  }
  if (
DaysForThisSelection CurrentDaysInSelection) {
    for (
i=0i<(DaysForThisSelection-CurrentDaysInSelection); i++) {
      
NewOption = new Option(document.vbform.day.options.length 1);
      
document.vbform.day.add(NewOption);
    }
  }
    if (
document.vbform.day.selectedIndex 0document.vbform.day.selectedIndex == 0;
}
</
script

add
PHP Code:

onchange="javascript:ChangeOptionDays()" 

to the month select field and the year select field

done

Mutt 01-18-2002 06:44 PM

make sure you remove the space in javascript

Shenlong 01-18-2002 06:48 PM

can u be more specific on where to add the 2nd javascript code plz?

Mutt 01-19-2002 02:24 AM

find these 2 tags

<select name="month" tabindex="1">

and

<select name="year" tabindex="3">

change them so they look like this

<select name="month" tabindex="1" onchange="javascript:ChangeOptionDays()">

and

<select name="year" tabindex="3" onchange="javascript:ChangeOptionDays()">

hope that is clearer

Link14716 01-20-2003 11:00 PM

This hack will be incorrect in February 2100 :D

Nice template mod, even though I don't use the calandar much.


All times are GMT. The time now is 04:46 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01124 seconds
  • Memory Usage 1,739KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete