回答編集履歴
2
仕様具体化に伴いコード追加
test
CHANGED
@@ -4,34 +4,106 @@
|
|
4
4
|
|
5
5
|
```js
|
6
6
|
|
7
|
-
var time = new Date();
|
7
|
+
var time = new Date();
|
8
8
|
|
9
|
-
var year = time.getFullYear();
|
9
|
+
var year = time.getFullYear();
|
10
|
+
|
11
|
+
var month = time.getMonth() + 1;
|
12
|
+
|
13
|
+
var today = time.getDate();
|
14
|
+
|
15
|
+
var lastDate = new Date(year, month, 0); // 今月の最終日
|
10
16
|
|
11
17
|
var selected = ' selected="selected"';
|
12
18
|
|
13
19
|
|
14
20
|
|
21
|
+
var i;
|
22
|
+
|
23
|
+
|
24
|
+
|
15
|
-
for (
|
25
|
+
for (i = year; i <= year + 5; i++) {
|
16
26
|
|
17
27
|
$('#year').append('<option value="' + i + '"'+ (i == year ? selected : '') +'>' + i + '</option>');
|
18
28
|
|
19
29
|
}
|
20
30
|
|
21
|
-
for (
|
31
|
+
for (i = month; i <= 12; i++) {
|
22
32
|
|
23
|
-
$('#month').append('<option value="' + i + '"'+ (i ==
|
33
|
+
$('#month').append('<option value="' + i + '"'+ (i == month ? selected : '') +'>' + i + '</option>');
|
24
34
|
|
25
35
|
}
|
26
36
|
|
27
|
-
for (
|
37
|
+
for (i = today; i <= lastDate; i++) {
|
28
38
|
|
29
|
-
$('#day').append('<option value="' + i + '"'+ (i == t
|
39
|
+
$('#day').append('<option value="' + i + '"'+ (i == today ? selected : '') +'>' + i + '</option>');
|
30
40
|
|
31
41
|
}
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
// 年セレクトボックス変更時イベント
|
46
|
+
|
47
|
+
$('body').on('change', '#year', function (e) {
|
48
|
+
|
49
|
+
var $year = $(e.target);
|
50
|
+
|
51
|
+
var $month = $('#month');
|
52
|
+
|
53
|
+
var $date = $('#day');
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
var slectedMonth = $month.val();
|
58
|
+
|
59
|
+
var slectedDate = $date.val();
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
$month.empty();
|
64
|
+
|
65
|
+
$date.empty();
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
// 年が今年なら
|
70
|
+
|
71
|
+
if (yaer == $year.val()) {
|
72
|
+
|
73
|
+
for (i = month; i <= 12; i++) {
|
74
|
+
|
75
|
+
$month.append('<option value="' + i + '"'+ (i == slectedMonth ? selected : '') +'>' + i + '</option>');
|
76
|
+
|
77
|
+
}
|
78
|
+
|
79
|
+
for (i = today; i <= lastDate; i++) {
|
80
|
+
|
81
|
+
$date.append('<option value="' + i + '"'+ (i == slectedDate ? selected : '') +'>' + i + '</option>');
|
82
|
+
|
83
|
+
}
|
84
|
+
|
85
|
+
}
|
86
|
+
|
87
|
+
// 年が未来なら
|
88
|
+
|
89
|
+
else {
|
90
|
+
|
91
|
+
for (i = 1; i <= 12; i++) {
|
92
|
+
|
93
|
+
$month.append('<option value="' + i + '"'+ (i == slectedMonth ? selected : '') +'>' + i + '</option>');
|
94
|
+
|
95
|
+
}
|
96
|
+
|
97
|
+
for (i = 1; i <= lastDate; i++) {
|
98
|
+
|
99
|
+
$date.append('<option value="' + i + '"'+ (i == slectedDate ? selected : '') +'>' + i + '</option>');
|
100
|
+
|
101
|
+
}
|
102
|
+
|
103
|
+
}
|
104
|
+
|
105
|
+
});
|
32
106
|
|
33
107
|
```
|
34
108
|
|
35
109
|
|
36
|
-
|
37
|
-
HTMLが`jquery`オブジェクトの場合はメソッドチェーンで`.prop('selected', true)`とします。
|
1
yearの「SELECTED」抜けを追加
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
for (var i = year; i >= 1900; i--) {
|
16
16
|
|
17
|
-
$('#year').append('<option value="' + i + '">' + i + '</option>');
|
17
|
+
$('#year').append('<option value="' + i + '"'+ (i == year ? selected : '') +'>' + i + '</option>');
|
18
18
|
|
19
19
|
}
|
20
20
|
|