1

id="datepicker_end"入力フィールドに入力された日数に基づいて、日付ピッカーの日付を変更しようとしていますid="totaldays"

入力フィールドid="totaldays"には 2 つの機能があります

1)2つの日付ピッカー間の日数を計算します(これは現在機能しています。JSFiddle http://jsfiddle.net/Deif/KLpq7/211/を参照してください)-この機能を維持したいです。

2) ユーザーが入力フィールドに直接日数を入力することにした場合、フィールドに入力された日数にid="datepicker_end"基づいて 2 番目の日付ピッカーを更新します。

ここでのコンセプトは、ユーザーが希望する日数を入力するか、2 つの日付から選択できるということです...

私のJSFiddleは次のとおりですhttp://jsfiddle.net/Deif/KLpq7/211/

良い例が見つからないので、上で説明していただければ幸いです。

4

1 に答える 1

1

このようなことを意味しますか?

function days() {
            var a = new Date($("#datepicker_start").val()),
                b = new Date($("#datepicker_end").val()),
                c = 24*60*60*1000,
                diffDays = Math.round(Math.abs((a - b)/(c)));
            $("#totaldays").val(diffDays);
}

function formatDate(_d){
     var d = new Date(_d);
    var curr_date = d.getDate();
    if(curr_date < 10)
        curr_date = "0" + curr_date;

    var curr_month = d.getMonth() + 1; //Months are zero based
    if(curr_month < 10)
        curr_month = "0" + curr_month;

    var curr_year = d.getFullYear();   
    return curr_month + '/' + curr_date + '/' + curr_year;
}

$('#totaldays').change(function(){        
    if($(this).val() != ''){
        var days = $(this).val();
        var start= new Date($("#datepicker_start").val());
        var newStart = start.setDate(start.getDate() + parseInt(days));    
        $("#datepicker_end").val(formatDate(newStart));
    }else{
        $("#datepicker_end").val($("#datepicker_start").val());
    }

});

$('.datepicker')
    .datepicker({format: 'mm/dd/yyyy'})
    .on('changeDate', function(ev){
        days();
        $(this).datepicker('hide').blur();
});

デモ:

http://jsfiddle.net/dirtyd77/KLpq7/218/

于 2013-02-11T18:55:58.043 に答える