年月日三级菜单 jquery

需要后太类来处理出示化时候对年月日的绑定 网上看到很多年月日三级下拉菜单的 但是在后台只能获取到年月的值 天的值是获取不到的 我的这个可以拿到

前台代码

   <div style="width: 200px; border-color: #FF0000;">
                                        <select name="year0" id="year" runat="server">
                                        </select>年
                                        <select name="month" id="month0" runat="server">
                                        </select>月
                                        <select name="days" onchange="setValue(this.value)" id="days0" runat="server">
                                        </select>日
   </div>

还需要一个 <asp:HiddenField ID="HidDD" runat="server" />

需要引用的文件


    <script src="../JS/jquery-1.3.2-vsdoc2.js" type="text/javascript"></script>

如果没有这个包那你只能自己下载了 这里不能上传

<script type="text/ecmascript">

        $(document).ready(function() {
            var day = $("#days0").val();
            var yearstr = $("#year option:selected").val();
            var monthstr = $("#month0 option:selected").text();
            var str = "";
            if (monthstr == 2) {
                $("#days0").empty();
                if (yearstr % 100 != 0 && yearstr % 4 == 0 || yearstr % 100 == 0 && yearstr % 400 == 0) {
                    for (var i = 1; i < 30; i++) {
                        str += "<option value=" + i + "> " + i + "</option>";
                    }
                } else {
                    for (var i = 1; i < 29; i++) {
                        str += "<option value=" + i + "> " + i + "</option>";
                    }
                }
                $(str).appendTo("#days0");
            };

            $("#days0").val(day);//这句很关键的
            $("#hidDD").val(day);//这句也是

            $("#month0").change(function() {
                var yearstr = $("#year option:selected").val();
                var monthstr = $("#month0 option:selected").text();
                var str = "";

                if (monthstr == '1' || monthstr == '3' || monthstr == '5' || monthstr == '7' || monthstr == '8' || monthstr == '10' || monthstr == '12') {
                    $("#days0").empty();
                    for (var i = 1; i < 32; i++) {
                        str += "<option value=" + i + "> " + i + "</option>";
                    }
                    $(str).appendTo("#days0");
                } else if (monthstr == 2) {
                    $("#days0").empty();
                    if (yearstr % 100 != 0 && yearstr % 4 == 0 || yearstr % 100 == 0 && yearstr % 400 == 0) {
                        for (var i = 1; i < 30; i++) {
                            str += "<option value=" + i + "> " + i + "</option>";
                        }
                    } else {
                        for (var i = 1; i < 29; i++) {
                            str += "<option value=" + i + "> " + i + "</option>";
                        }
                    }
                    $(str).appendTo("#days0");
                } else {
                    $("#days0").empty();
                    for (var i = 1; i < 31; i++) {
                        str += "<option value=" + i + "> " + i + "</option>";
                    }
                    $(str).appendTo("#days0");
                }
            });
            $("#year").change(function() {
                var yearstr = $("#year option:selected").val();
                var monthstr = $("#month0 option:selected").text();
                var str = "";
                if (monthstr == 2) {
                    $("#days0").empty();
                    if (yearstr % 100 != 0 && yearstr % 4 == 0 || yearstr % 100 == 0 && yearstr % 400 == 0) {
                        for (var i = 1; i < 30; i++) {
                            str += "<option value=" + i + "> " + i + "</option>";
                        }
                    } else {
                        for (var i = 1; i < 29; i++) {
                            str += "<option value=" + i + "> " + i + "</option>";
                        }
                    }
                    $(str).appendTo("#days0");
                }
            });
        });
        function setValue(val) {
            $("#HidDD").val(val);
        }
    </script>

后台代码

private void BindDATE()
        {
            for (int i = 1980; i < System.DateTime.Now.Year; i++)
            {
                string text = i.ToString();
                string value = i.ToString();
                this.year.Items.Add(new ListItem(text, value));
            }
            for (int i = 1; i < 13; i++)
            {
                string text = i.ToString();
                string value = i.ToString();
                this.month0.Items.Add(new ListItem(text, value));
            }

            for (int i = 1; i < 32; i++)
            {
                string text = i.ToString();
                string value = i.ToString();
                this.days0.Items.Add(new ListItem(text, value));
            }
        }

日是绑上去的 31天 有人可能说这样不对 没问题 天数的计算在js里面已经处理了 是根据年月来计算的

posted @ 2011-03-17 19:02  Ganler1988  阅读(466)  评论(0编辑  收藏  举报