1

これをうまく説明できるかどうかわからないので、jsfiddle を作成しました: http://jsfiddle.net/jrrbg/

基本的に、最初の入力ボックスで日付を選択し、2 番目の入力ボックスに表示したいのですが、1 週間前の日付で表示します。

<p>Match Date<br />
      <input name="seatt_expire" type="text" class="datepicker" id="seatt_expire" />
    </p>

<p>Opening Registration<br />
      <input name="seatt_start" type="text" class="datepicker" id="seatt_start" />
</p>

$(function() {

$( ".datepicker" ).datepicker({

dateFormat: "dd-mm-yy",
firstDay: 1,
altField: "#seatt_start"
});


$( "#seatt_start" ).datepicker( "setDate", -7 );

});

現在、最初のボックスの日付を使用する代わりに、デフォルトの日付を使用して 7 日前に設定しています。

4

2 に答える 2

1

これを行う方法は次のとおりです:フィドル

$("#seat-expire").datepicker({
    dateFormat: "dd-mm-yy",
    firstDay: 1,
    onSelect:function(text,obj){
        var dateObject = $(this).datepicker("getDate");
        dateObject.setDate(obj.currentDay-7);
        $("#seat-start").datepicker("setDate",dateObject);
    }
});

#seat-start必要に応じて、同じことを逆にのみ適用できます。

$("#seat-start").datepicker({
        dateFormat: "dd-mm-yy",
        firstDay: 1,
        // display expire date
        onSelect:function(text,obj){
            var dateObject = $(this).datepicker("getDate");
            dateObject.setDate(obj.currentDay+7);
            $("#seat-expire").datepicker("setDate",dateObject);
        }
    });
于 2013-07-01T14:54:53.070 に答える
0

あなたのアプローチの問題は$( "#seatt_start" ).datepicker( "setDate", -7 );、日付を前の日付ではなく、7 日から今日を引いた日付に設定することです。また、日付が変更されても何もトリガーされないため、イベントseatt_expireを使用する必要があります。onSelect

次のようなことを試してください:

jQuery(function () {
    $("#seatt_start").datepicker({dateFormat: "dd-mm-yy"});
    $("#seatt_expire").datepicker({
        dateFormat: "dd-mm-yy",
        firstDay: 1,
        onSelect: function (prev_date) {
            prev = prev_date.split("-");
            var date = new Date(prev[2], prev[1] - 1, prev[0]);
            var d = date.getDate();
            var m = date.getMonth();
            var y = date.getFullYear();
            var new_date = new Date(y, m, d - 7);
            $("#seatt_start").removeAttr("disabled").datepicker("setDate", new_date);
        }
    });
});

ここでは、日付からの日付seatt_expireが差し引かれ、解析されて必要な7日が減算されます。また、日付からの日付はseatt_start毎回変更されます。また、同じonSelectイベントが両方のフィールドに適用されるのを避けるために、両方の日付ピッカー宣言を分離しました...

JSFiddleデモ

于 2013-07-01T14:52:35.910 に答える