0

編集: ここで問題を示すために jsfiddle を作成しました: http://jsfiddle.net/GvjRd/3/

JQuery UI の日付ピッカーを使用する Web ツールがあります。何週間もスムーズに動いていましたが、今日突然動かなくなりました。カレンダーでどの日/月/年を選んでも、日を選択して呼び出すalert(currentTime.getMonth());と「7」が返されます。日/年を問題なく返します。

非常に単純なページを作成して、日付ピッカーのみをテストしました。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <link type="text/css" href="ui-lightness/jquery-ui-1.8.21.custom.css" rel="stylesheet" />
    <link rel="stylesheet" href="demos.css">
    <script type="text/javascript" src="jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="jquery-ui-1.8.21.custom.min.js"></script>
    <script type="text/javascript">
        $(function() {
            $("#datepicker").datepicker({
                onSelect : function(dateText, inst) {
                    var currentTime = new Date();
                    currentTime.setDate($("#datepicker").datepicker("getDate").getDate());
                    alert(currentTime.getMonth());
                }
            });
        });
    </script>

</head>
<body>
            Date:
            <input type="text" id="datepicker">
</body>

このページでも、どの日/月/年の組み合わせを選択しても、アラートには「7」と表示されます。他にこの問題を抱えている人はいますか?

4

2 に答える 2

0

JavaScript の月は 0 から始まるため、7 = 8 番目の月、つまり 8 月です。

あなたの例では、currentTime今日に設定し、その日付オブジェクトの日をカレンダーで選択された日付に変更するだけで、月と年は変更されません。したがって、currentTime.getMonth()カレンダーから選択された日付ではなく、スクリプトを実行した月が常に表示されます。そのためには、currentTime.setMonth($("#datepicker").datepicker("getDate").getMonth());

jsFiddle の例

于 2012-08-01T20:25:55.743 に答える
0

currentTime事前に変数を設定しないように注意してください。

$(function() {
                $("#datepicker").datepicker({
                    onSelect : function(dateText, inst) {
                        var currentTime;
                        currentTime = $("#datepicker").datepicker("getDate");
                        alert(currentTime.getMonth() + 1);
                    }
                });
            });​
于 2012-08-01T20:55:02.680 に答える