Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 根据另一个下拉列表更改下拉列表_Jquery - Fatal编程技术网

Jquery 根据另一个下拉列表更改下拉列表

Jquery 根据另一个下拉列表更改下拉列表,jquery,Jquery,我试图创建一个三选下拉列表,代表一个人的生日。我考虑到有4个月加30天,7个月加31天,1个月加28或29天,这取决于是否是闰年。我希望天数下拉列表显示天数,具体取决于在月份下拉列表中选择的月份。这是我现在拥有的 下面是用于选择的html <!Doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Birthday validation</title&

我试图创建一个三选下拉列表,代表一个人的生日。我考虑到有4个月加30天,7个月加31天,1个月加28或29天,这取决于是否是闰年。我希望天数下拉列表显示天数,具体取决于在月份下拉列表中选择的月份。这是我现在拥有的

下面是用于选择的html

<!Doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Birthday validation</title>
<script src="jquery-1.11.1.min.js"></script>
<script src="birthday_drop.js"></script>

<link href="style.css" rel="stylesheet />
</head>
<body>
<h2>Birthday</h2>
<fieldset class="birthday-picker">
<select class="birth-month" name="birth[month]"><option>Month</option></select>
<select class="birth-day" name="birth[day]"><option>Day</option></select>
<select class="birth-year" name="birth[year]"><option>Year</option></select>
</fieldset>
</body>
</html>

生日验证

<>我真的会考虑使用jQuery DePopeKER或类似的东西,然后打开变化年和变化特征。但在任何一种情况下,您都可以这样做(缺点是,如果您先更改日期,则当您选择月份或年份时,它将删除该日期,尽管我认为您可以存储该日期的变量,并在该日期后将其重置为该值,如果该值出现在该月份):

函数UpdateDays(){
var cYear=$('select.birth year').val();
如果(cYear!=“年”){
var cMonth=$('.birth month').val();
如果(厘米月!=“月”){
$('.birth day').html(“day”);

对于(i=1;i,您应该能够使用日期对象来执行此操作

要获取给定年份和月份的天数,可以使用以下代码

var startMonth = new Date(year, month, 1);
var endMonth = new Date(year, month + 1, 1);
var daysInGivenMonth = (endMonth - startMonth) / (1000 * 60 * 60 * 24)

现在,特定年份的月份天数将分配给daysInGivenMonth。您可以使用一个从1开始到不喜欢65岁或65岁以上的人的for循环?我刚看了小提琴,它工作了,只是我必须先选择年份,然后选择月份,然后才能选择正确的日期。有什么原因吗?如果您想解释闰年在知道一个月中有多少天之前,你需要知道这两个数字。否则,你可以从一个数组中提取天数,比如月份,然后如果用户选择一个月,那么如果该年是闰年,就先更改它。
function UpdateDays(){
    var cYear = $('select.birth-year').val();
    if(cYear != "Year"){
        var cMonth = $('.birth-month').val();
        if(cMonth != "Month"){
            $('.birth-day').html("<option>Day</option>");
            for(i=1; i <= new Date(cYear,cMonth,0).getDate(); i++){
                $("<option value=' + i + '>" + i + "</option>").appendTo('.birth-day');
            }
        }
    }
}
$('.birth-month,birth-year').change(function(){
    UpdateDays();
});
var startMonth = new Date(year, month, 1);
var endMonth = new Date(year, month + 1, 1);
var daysInGivenMonth = (endMonth - startMonth) / (1000 * 60 * 60 * 24)