ㅤㅤㅤ

자바스크립트 셀렉트박스 날짜 선택! 본문

プログラミング/JavaScript JQuery

자바스크립트 셀렉트박스 날짜 선택!

ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ 2017. 6. 23. 09:36

functionの定義とHTMLの準備

【JavaScript】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var changeDay = function() {
    var result    = false,
        formId    = 'change-day', // フォームのID名
        yearName  = 'year',       // 年セレクトボックスのname属性値
        monthName = 'month',      // 月セレクトボックスのname属性値
        dayName   = 'day',        // 日セレクトボックスのname属性値
        formObj   = document.getElementById(formId);
 
    if (formObj) {
        var yearObj  = formObj[yearName],
            monthObj = formObj[monthName],
            dayObj   = formObj[dayName],
            selectY  = yearObj.options[yearObj.selectedIndex].value,
            selectM  = monthObj.options[monthObj.selectedIndex].value,
            selectD  = dayObj.options[dayObj.selectedIndex].value,
            dateObj  = new Date(selectY, selectM, 0),
            maxDays  = dateObj.getDate();
 
        dayObj.length = 0;
 
        for (var i = 1; i <= maxDays; i++) {
            dayObj.options[i] = new Option(i, i);
        }
 
        dayObj.removeChild(dayObj.options[0]);
 
        if (selectD > dayObj.length) {
            dayObj.options[dayObj.length - 1].selected = true;
        } else {
            dayObj.options[selectD - 1].selected = true;
        }
 
        result = true;
    }
    return result;
};

【HTML】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<form action="./" method="post" name="change-day" id="change-day">
    <table>
        <tr>
            <th>日付</th>
            <td>
                <select name="year" id="year">
                <option value="1970">1970</option>
                <option value="1971">1971</option>
                <option value="1972">1972</option>
                <option value="1973">1973</option>
                <option value="1974">1974</option>
                <option value="1975">1975</option>
                <option value="1976">1976</option>
                <option value="1977">1977</option>
                <option value="1978">1978</option>
                <option value="1979">1979</option>
                <option value="1980">1980</option>
                <option value="1981">1981</option>
                <option value="1982">1982</option>
                <option value="1983">1983</option>
                <option value="1984">1984</option>
                <option value="1985">1985</option>
                <option value="1986">1986</option>
                <option value="1987">1987</option>
                <option value="1988">1988</option>
                <option value="1989">1989</option>
                <option value="1990">1990</option>
                <option value="1991">1991</option>
                <option value="1992">1992</option>
                <option value="1993">1993</option>
                <option value="1994">1994</option>
                <option value="1995">1995</option>
                <option value="1996">1996</option>
                <option value="1997">1997</option>
                <option value="1998">1998</option>
                <option value="1999">1999</option>
                <option value="2000">2000</option>
                <option value="2001">2001</option>
                <option value="2002">2002</option>
                <option value="2003">2003</option>
                <option value="2004">2004</option>
                <option value="2005">2005</option>
                <option value="2006">2006</option>
                <option value="2007">2007</option>
                <option value="2008">2008</option>
                <option value="2009">2009</option>
                <option value="2010">2010</option>
                <option value="2011">2011</option>
                <option value="2012">2012</option>
                <option value="2013">2013</option>
                <option value="2014">2014</option>
                <option value="2015">2015</option>
                <option value="2016">2016</option>
                <option value="2017">2017</option>
                </select>年
                <select name="month" id="month">
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
                    <option value="5">5</option>
                    <option value="6">6</option>
                    <option value="7">7</option>
                    <option value="8">8</option>
                    <option value="9">9</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                </select>月
                <select name="day">
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
                    <option value="5">5</option>
                    <option value="6">6</option>
                    <option value="7">7</option>
                    <option value="8">8</option>
                    <option value="9">9</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                    <option value="13">13</option>
                    <option value="14">14</option>
                    <option value="15">15</option>
                    <option value="16">16</option>
                    <option value="17">17</option>
                    <option value="18">18</option>
                    <option value="19">19</option>
                    <option value="20">20</option>
                    <option value="21">21</option>
                    <option value="22">22</option>
                    <option value="23">23</option>
                    <option value="24">24</option>
                    <option value="25">25</option>
                    <option value="26">26</option>
                    <option value="27">27</option>
                    <option value="28">28</option>
                    <option value="29">29</option>
                    <option value="30">30</option>
                    <option value="31">31</option>
                </select>日
            </td>
        </tr>
    </table>
</form>

使い方

年と月のセレクトボックスに対してonchangeイベントを割り当てます。

【JavaScript】

1
2
3
4
5
6
7
8
9
10
11
var yearSelect  = document.getElementById('year'),
    monthSelect = document.getElementById('month');
 
yearSelect.onchange = function() {
    changeDay();
};
 
monthSelect.onchange = function() {
    changeDay();
};


Comments