0

私は3つの入力を持っています:

<input type='number'>
<input class='datepicker'>
<input class='datepicker' readonly='readonly'>

日付ピッカーは次のように単純です。

<script>
  $(function() 
    {
     $('.datepicker').datepicker({ dateFormat: 'yy-mm-dd' });
    }); 
</script>

1つ目は、たとえば2の週数を設定するためのものです。2つ目は、開始日を設定するためのものです。3番目の入力(読み取り専用)で、設定された日付の結果の日付と週数が出力されるようにするにはどうすればよいですか?

2週間を設定し、最初の日付ピッカーを使用して2012-12-07を設定した場合のように、3番目の(読み取り専用)入力2012-12-21に出力されますか?

アドバイスありがとうございます!

4

1 に答える 1

1

onSelect()選択した日付を取得し、読み取り専用フィールドを更新するには、datepickerのプロパティを使用する必要があります: http://api.jqueryui.com/datepicker/#option-onSelect

次に、Dateオブジェクトとそのメソッドを使用して、選択した日付を解析し、特定の日数を追加して、新しい日付に対応する新しいテキストを返す必要があります。

<input id="nbweeks" type='number' />
<input class='datepicker' />
<input id="input-ro" class='datepicker' readonly='readonly' />

function addDaysDate(dateText, days) {
    var curDate = new Date(Date.parse(dateText));
    var nextDate = new Date();
    nextDate .setDate(curDate.getDate() + days);

    var curDay = nextDate .getDate();
    var curMonth = nextDate .getMonth() + 1; //Months are zero based
    var curYear = nextDate .getFullYear();
    return curMonth + "-" + curDay + "-" + curYear;​
}

$(function(){
    $('.datepicker').datepicker({
        dateFormat: 'yyyy-mm-dd',
        onSelect(dateText, inst) {
            var days = $("#nbweeks").val() * 7;
            var newDate = addDaysDate(dateText, days)
            $("#input-ro").val(newDate)​;​
        }
    });
});

コードの実例 (日付ピッカーなし): http://jsfiddle.net/PcTHQ/

EDIT : Date.parse() が機能するためには、年を 4 桁にするか、日付の順序を mm/dd/yy に変更する必要があると思います。

于 2012-12-07T21:35:51.757 に答える