JavaScript用select實現(xiàn)日期控件
更新時間:2015年07月17日 10:46:22 投稿:hebedich
這篇文章主要介紹了JavaScript用select實現(xiàn)日期控件的相關(guān)資料,需要的朋友可以參考下
代碼很簡單,這里就不多廢話了,直接給大家源碼吧
<!doctype html> <html> <head> <title>年月日</title> </head> <body onLoad="init()"> <select id="year" onChange="swap_day()"></select>年 <select id="month" onChange="swap_day()"></select>月 <select id="day"></select>日 </body> <script> var month_big = new Array("1","3","5","7","8","10","12"); //包含所有大月的數(shù)組 var month_small = new Array("4","6","9","11"); //包含所有小月的數(shù)組 //頁面加載時調(diào)用的初始化select控件的option的函數(shù) function init() { var select_year = document.getElementById("year"); //獲取id為"year"的下拉列表框 var select_month = document.getElementById("month"); //獲取id為"month"的下拉列表框 var select_day = document.getElementById("day"); //獲取id為"day"的下拉列表框 //將年份選項初始化,從1980到2000 for(var i = 1980; i <= 2000; i++) { select_year_option = new Option(i, i); select_year.options.add(select_year_option); } //將月份選項初始化,從1到12 for(var i = 1; i <= 12; i++) { select_month_option = new Option(i, i); select_month.options.add(select_month_option); } //調(diào)用swap_day函數(shù)初始化日期 swap_day(); } //判斷數(shù)組array中是否包含元素obj的函數(shù),包含則返回true,不包含則返回false function array_contain(array, obj) { for (var i = 0; i < array.length; i++) { if (array[i] === obj) { return true; } } return false; } //根據(jù)年份和月份調(diào)整日期的函數(shù) function swap_day() { var select_year = document.getElementById("year"); //獲取id為"year"的下拉列表框 var select_month = document.getElementById("month"); //獲取id為"month"的下拉列表框 var select_day = document.getElementById("day"); //獲取id為"day"的下拉列表框 select_day.options.length = 0; //在調(diào)整前先清空日期選項里面的原有選項 var month = select_month.options[select_month.selectedIndex].value; //獲取被選中的月份month //如果month被包含在month_big數(shù)組中,即被選中月份是大月,則將日期選項初始化為31天 if(array_contain(month_big, month)) { for(var i = 1; i <= 31; i++) { select_day_option = new Option(i, i); select_day.options.add(select_day_option); } } //如果month被包含在month_small數(shù)組中,即被選中月份是小月,則將日期選項初始化為30天 else if(array_contain(month_small, month)) { for(var i = 1; i <= 30; i++) { select_day_option = new Option(i, i); select_day.options.add(select_day_option); } } //如果month為2,即被選中的月份是2月,則調(diào)用initFeb()函數(shù)來初始化日期選項 else { initFeb(); } } //判斷年份year是否為閏年,是閏年則返回true,否則返回false function isLeapYear(year) { var a = year % 4; var b = year % 100; var c = year % 400; if( ( (a == 0) && (b != 0) ) || (c == 0) ) { return true; } return false; } //根據(jù)年份是否閏年來初始化二月的日期選項 function initFeb() { var select_year = document.getElementById("year"); //獲取id為"year"的下拉列表框 var select_day = document.getElementById("day"); //獲取id為"day"的下拉列表框 var year = parseInt(select_year.options[select_year.selectedIndex].value); //獲取被選中的年份并轉(zhuǎn)換成Int //如果是閏年,則將日期選項初始化為29天 if(isLeapYear(year)) { for(var i = 1; i <= 29; i++) { select_day_option = new Option(i, i); select_day.options.add(select_day_option); } } //如果不是閏年,則將日期選項初始化為28天 else { for(var i = 1; i <= 28; i++) { select_day_option = new Option(i, i); select_day.options.add(select_day_option); } } } </script> </html>
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
webpack4手動搭建Vue開發(fā)環(huán)境實現(xiàn)todoList項目的方法
這篇文章主要介紹了webpack4手動搭建Vue開發(fā)環(huán)境實現(xiàn)todoList項目的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05JavaScript實現(xiàn)淘寶京東6位數(shù)字支付密碼效果
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)淘寶京東6位數(shù)字支付密碼效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08關(guān)于Javascript中defer和async的區(qū)別總結(jié)
相信看過javascript高級程序設計的人,在javascript高級程序設計里,應該看到了介紹了有關(guān)defer和async的區(qū)別,可是比較淺顯,而且也說得不是很清楚。下面我們來通過這篇文章來詳細了解下dfer和async的區(qū)別。2016-09-09uniapp調(diào)用百度語音實現(xiàn)錄音轉(zhuǎn)文字功能
這篇文章主要介紹了uniapp通過調(diào)用百度語音,實現(xiàn)錄音轉(zhuǎn)文字的功能。文中的示例代碼對我們學習或工作有一定的幫助,感興趣的小伙伴可以跟隨小編學習一下2021-12-12淺談js構(gòu)造函數(shù)的方法與原型prototype
下面小編就為大家?guī)硪黄獪\談js構(gòu)造函數(shù)的方法與原型prototype。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07Javascript 創(chuàng)建類并動態(tài)添加屬性及方法的簡單實現(xiàn)
下面小編就為大家?guī)硪黄狫avascript 創(chuàng)建類并動態(tài)添加屬性及方法的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10