欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript用select實(shí)現(xiàn)日期控件

 更新時(shí)間:2015年07月17日 10:46:22   投稿:hebedich  
這篇文章主要介紹了JavaScript用select實(shí)現(xiàn)日期控件的相關(guān)資料,需要的朋友可以參考下

代碼很簡(jiǎn)單,這里就不多廢話(huà)了,直接給大家源碼吧

<!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ù)組 

//頁(yè)面加載時(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"的下拉列表框
  
  //將年份選項(xiàng)初始化,從1980到2000
  for(var i = 1980; i <= 2000; i++)
  {
    select_year_option = new Option(i, i);
    select_year.options.add(select_year_option);
  }
  
  //將月份選項(xiàng)初始化,從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)整前先清空日期選項(xiàng)里面的原有選項(xiàng)
  var month = select_month.options[select_month.selectedIndex].value; //獲取被選中的月份month
  
  //如果month被包含在month_big數(shù)組中,即被選中月份是大月,則將日期選項(xiàng)初始化為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ù)組中,即被選中月份是小月,則將日期選項(xiàng)初始化為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ù)來(lái)初始化日期選項(xiàng)
  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ù)年份是否閏年來(lái)初始化二月的日期選項(xiàng)
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
  
  //如果是閏年,則將日期選項(xiàng)初始化為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);
    }
  }
  
  //如果不是閏年,則將日期選項(xiàng)初始化為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>

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • Object.keys()的用法示例詳解

    Object.keys()的用法示例詳解

    Object.keys()是遍歷一個(gè)對(duì)象自身的屬性名稱(chēng)(不包括繼承屬性)的最簡(jiǎn)單方法,這篇文章主要介紹了Object.keys()的用法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • webpack4手動(dòng)搭建Vue開(kāi)發(fā)環(huán)境實(shí)現(xiàn)todoList項(xiàng)目的方法

    webpack4手動(dòng)搭建Vue開(kāi)發(fā)環(huán)境實(shí)現(xiàn)todoList項(xiàng)目的方法

    這篇文章主要介紹了webpack4手動(dòng)搭建Vue開(kāi)發(fā)環(huán)境實(shí)現(xiàn)todoList項(xiàng)目的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • js判斷生效時(shí)間不得大于失效時(shí)間的思路及代碼

    js判斷生效時(shí)間不得大于失效時(shí)間的思路及代碼

    生效時(shí)間不得大于失效時(shí)間在一些推銷(xiāo)、優(yōu)惠方面還是比較實(shí)用的,接下來(lái)一起看下詳細(xì)的實(shí)現(xiàn)代碼,感興趣的朋友可以參考下哈,希望對(duì)你有所幫助
    2013-04-04
  • JavaScript降低代碼圈復(fù)雜度優(yōu)化技巧

    JavaScript降低代碼圈復(fù)雜度優(yōu)化技巧

    當(dāng)一個(gè)項(xiàng)目經(jīng)過(guò)持續(xù)迭代,不斷增加功能,逐漸變成一個(gè)復(fù)雜的產(chǎn)品時(shí),新功能的開(kāi)發(fā)變得相對(duì)困難,其中一個(gè)很大的原因是代碼復(fù)雜度高,導(dǎo)致可維護(hù)性和可讀性都很差,本文將從前端JavaScript的角度出發(fā),介紹一些有效的方法和技巧來(lái)優(yōu)化前端代碼的圈復(fù)雜度
    2023-10-10
  • JavaScript實(shí)現(xiàn)淘寶京東6位數(shù)字支付密碼效果

    JavaScript實(shí)現(xiàn)淘寶京東6位數(shù)字支付密碼效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)淘寶京東6位數(shù)字支付密碼效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 關(guān)于Javascript中defer和async的區(qū)別總結(jié)

    關(guān)于Javascript中defer和async的區(qū)別總結(jié)

    相信看過(guò)javascript高級(jí)程序設(shè)計(jì)的人,在javascript高級(jí)程序設(shè)計(jì)里,應(yīng)該看到了介紹了有關(guān)defer和async的區(qū)別,可是比較淺顯,而且也說(shuō)得不是很清楚。下面我們來(lái)通過(guò)這篇文章來(lái)詳細(xì)了解下dfer和async的區(qū)別。
    2016-09-09
  • uniapp調(diào)用百度語(yǔ)音實(shí)現(xiàn)錄音轉(zhuǎn)文字功能

    uniapp調(diào)用百度語(yǔ)音實(shí)現(xiàn)錄音轉(zhuǎn)文字功能

    這篇文章主要介紹了uniapp通過(guò)調(diào)用百度語(yǔ)音,實(shí)現(xiàn)錄音轉(zhuǎn)文字的功能。文中的示例代碼對(duì)我們學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以跟隨小編學(xué)習(xí)一下
    2021-12-12
  • 淺談js構(gòu)造函數(shù)的方法與原型prototype

    淺談js構(gòu)造函數(shù)的方法與原型prototype

    下面小編就為大家?guī)?lái)一篇淺談js構(gòu)造函數(shù)的方法與原型prototype。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • JavaScript碰撞檢測(cè)原理及其實(shí)現(xiàn)代碼

    JavaScript碰撞檢測(cè)原理及其實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了JavaScript碰撞檢測(cè)原理及其實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Javascript 創(chuàng)建類(lèi)并動(dòng)態(tài)添加屬性及方法的簡(jiǎn)單實(shí)現(xiàn)

    Javascript 創(chuàng)建類(lèi)并動(dòng)態(tài)添加屬性及方法的簡(jiǎn)單實(shí)現(xiàn)

    下面小編就為大家?guī)?lái)一篇Javascript 創(chuàng)建類(lèi)并動(dòng)態(tài)添加屬性及方法的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10

最新評(píng)論