年月日联动select下拉菜单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        select{
            font:20px/40px ‘宋体‘;
        }
        option{width: 100px;}
    </style>
</head>
<body>
<div id="box">
    <select name="sel1" id="sel1">
        <option value="year">年</option>
    </select>
    <select name="sel2" id="sel2">
        <option value="month">月</option>
    </select>
    <select name="sel3" id="sel3">
        <option value="day">日</option>
    </select>
    <!--<span id="result"></span>-->
</div>

<script>
    //生成日期
    function creatDate(){
        //生成1900年-2100年
        for(var i = 1900; i<=2100;i++){
            var option = document.createElement(‘option‘);
            option.setAttribute(‘value‘,i);
            option.innerHTML = i;
            sel1.appendChild(option);
        }
        //生成1月-12月
        for(var i = 1; i <=12; i++){
            var option = document.createElement(‘option‘);
            option.setAttribute(‘value‘,i);
            option.innerHTML = i;
            sel2.appendChild(option);
        }
        //生成1日—31日
        for(var i = 1; i <=31; i++){
            var option = document.createElement(‘option‘);
            option.setAttribute(‘value‘,i);
            option.innerHTML = i;
            sel3.appendChild(option);
        }
    }
    creatDate();
    //保存某年某月的天数
    var days;
    //年份点击
    sel1.onclick = function(){
        //月份显示默认值
        sel2.options[0].selected = true;
        //天数显示默认值
        sel3.options[0].selected = true;
    }
    //月份点击
    sel2.onclick = function(){
        //天数显示默认值
        sel3.options[0].selected = true;
        //计算天数的显示范围
        //如果是2月
        if(sel2.value == 2){
            //如果是闰年
            if((sel1.value % 4 === 0 && sel1.value % 100 !== 0)  || sel1.value % 400 === 0){
                days = 29;
                //如果是平年
            }else{
                days = 28;
            }
            //如果是第4、6、9、11月
        }else if(sel2.value == 4 || sel2.value == 6 ||sel2.value == 9 ||sel2.value == 11){
            days = 30;
        }else{
            days = 31;
        }
        //增加或删除天数
        //如果是28天,则删除29、30、31天(即使他们不存在也不报错)
        if(days == 28){
            sel3.remove(31);
            sel3.remove(30);
            sel3.remove(29);
        }
        //如果是29天
        if(days == 29){
            sel3.remove(31);
            sel3.remove(30);
            //如果第29天不存在,则添加第29天
            if(!sel3.options[29]){
                sel3.add(new Option(‘29‘,‘29‘),undefined)
            }
        }
        //如果是30天
        if(days == 30){
            sel3.remove(31);
            //如果第29天不存在,则添加第29天
            if(!sel3.options[29]){
                sel3.add(new Option(‘29‘,‘29‘),undefined)
            }
            //如果第30天不存在,则添加第30天
            if(!sel3.options[30]){
                sel3.add(new Option(‘30‘,‘30‘),undefined)
            }
        }
        //如果是31天
        if(days == 31){
            //如果第29天不存在,则添加第29天
            if(!sel3.options[29]){
                sel3.add(new Option(‘29‘,‘29‘),undefined)
            }
            //如果第30天不存在,则添加第30天
            if(!sel3.options[30]){
                sel3.add(new Option(‘30‘,‘30‘),undefined)
            }
            //如果第31天不存在,则添加第31天
            if(!sel3.options[31]){
                sel3.add(new Option(‘31‘,‘31‘),undefined)
            }
        }
    }

    //结果显示
//    box.onclick = function(){
//        //当年、月、日都已经为设置值时
//        if(sel1.value !=‘year‘ && sel2.value != ‘month‘ && sel3.value !=‘day‘){
//            var day = new Date(sel1.value,sel2.value-1,sel3.value).getDay();
//            result.innerHTML = sel1.value + ‘年‘ + sel2.value + ‘月‘ +  sel3.value + ‘日‘ + ‘星期‘ + changDay(day);
//        }else{
//            result.innerHTML = ‘‘;
//        }
//    }
    //星期格式切换
//    function changDay(num){
//        switch(num){
//            case 0:
//                return ‘日‘;
//            case 1:
//                return ‘一‘;
//            case 2:
//                return ‘二‘;
//            case 3:
//                return ‘三‘;
//            case 4:
//                return ‘四‘;
//            case 5:
//                return ‘五‘;
//            case 6:
//                return ‘六‘;
//        }
//    }
</script>

</body>
</html>

来源 http://www.cnblogs.com/xiaohuochai/p/5877594.html

时间: 2024-11-29 02:34:46

年月日联动select下拉菜单的相关文章

火狐浏览器下连接a下无法使用select下拉菜单

火狐浏览器下连接a下无法使用select下拉菜单:如果select下拉菜单包裹在链接a中,则无法实现选中效果,当然如此使用在实际应用中也是很少见的,不过下面还是做一下简单介绍,如何避免此种问题的出现,寄希望能够给需要者带来一定的帮助.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content=&

使用select下拉菜单筛选table表格内容

使用select下拉菜单筛选table表格内容:本章节介绍一下如何利用select下拉菜单对表单的内容进行筛选,如果数据量庞大,便于搜索使用的话,筛选效果还是非常有必要的,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/&qu

如何设置select下拉菜单option项显示的数目

如何设置select下拉菜单option项显示的数目: 本章节介绍一下如何设置select下拉菜单的可见的option项的数目,代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.51texiao.cn/" /> <title>蚂蚁

jquery如何删除select下拉菜单中所有的option项

jquery如何删除select下拉菜单中所有的option项:在实际应用中,有可能要求一次性删除所有的select下拉菜单的option选项,方法非常的简单.select下拉菜单: <select id="mayi"> <option value="1">蚂蚁部落一</option> <option value="2">蚂蚁部落二</option> </select> 删除

div模拟select下拉菜单效果

有些时候select下拉菜单直接用css调整样式,可能会有兼容性的问题,尤其是右侧的下拉三角,很难用css控制,那怎么办呢?可以采用div模拟select下拉菜单的效果.先直接上代码了: HTML的结构如下: <!doctype html> <html> <head> <meta charset="utf-8" /> <title>div模拟下拉菜单特效</title> <style type="t

美化select下拉菜单

默认的select下拉菜单不容易美化,很多UI是无法通过css更改的,所以要美化先更改结构,下面介绍的美化插件尽管代码各异,但大部分都将默认的下拉菜单转化成样式可控的元素,例如div.ul.span等,这样就可以用CSS尽情定制了. Chosen Chosen is a jQuery plugin that makes long, unwieldy select boxes much more user-friendly. WooCommerce中的国家选择器很美观,这个脚本实现的效果与之完全相

javascript模拟select下拉菜单

javascript模拟select下拉菜单: 由于自带的select下拉菜单确实是不够美观,并且美化的潜力也不够大,所以对外观要求比较高的网站,基本都要使用自定义的select下拉菜单,下面就提供了一个简单的例子供大家参考,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="

web前端html实例-select下拉菜单美化代码

自带的select下拉菜单美观度实在不怎么样,并且不容易美化,当然我们可以模拟实现select下拉菜单,但是代码稍显复杂,不过也可以通过简单的CSS实现此效果,下面通过实例简单作一下介绍. 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.

jQuery制作简洁的多级联动Select下拉框

今天我们要来分享一款很实用的jQuery插件,它是一个基于jQuery多级联动的省市地区Select下拉框,并且值得一提的是,这款联动下拉框是经过自定义美化过的,外观比浏览器自带的要漂亮许多.另外,这个Select下拉框也可以绑定下拉事件,并获取当前选中项的值. html代码: <div class="wrap">        <div class="nice-select" name="nice-select">