2013-02-11 55 views
1

我打算根据输入字段id="totaldays"中输入的天数更改日期选择器id="datepicker_end"的日期。通过输入字段中的天数更新Datepicker日期?

输入字段id="totaldays"有2个功能

1)计算2个datepickers之间的天数(这个工作现在,看到的jsfiddle http://jsfiddle.net/Deif/KLpq7/211/) - 我想保留这个功能。

2)如果用户决定在输入字段中直接输入天数,那么我希望第二个日期选择器id="datepicker_end"根据输入字段的天数进行更新。

这里的概念是,用户可以输入自己想要的天量或2个日期之间的选择......

我的jsfiddle如下:http://jsfiddle.net/Deif/KLpq7/211/

我找不到任何好的例子,让希望我在上面解释它。

+0

这会帮助你的。确保在演示下面打开“查看源代码”。 http://jqueryui.com/datepicker/#date-range – Dom 2013-02-11 18:02:20

+0

Dom,是的,这就是我现在在我的JSFIddle工作,我不知道如何编辑该字段来让它更新日期 – Redwall 2013-02-11 18:12:51

回答

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(); 
}); 

DEMO:

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

+0

真棒大教堂,谢谢你很多队友!这就像一个魅力!让我的夜晚! – Redwall 2013-02-11 22:21:39

相关问题