2011-10-23 129 views
4

我有两个输入字段,一个是开始日期,另一个是完成日期。我怎么能自动设置完成日期作为开始日期+ 1天,当我在第一个领域输入日期?
我的代码是这样的:
JQuery如何递增日期

<form> 
Start: <input type="text" name="date_start" id="datepicker0"> 
Stop: <input type="text" name="date_stop" id="datepicker1"> 
</form> 
+0

我的猜测是使用['onSelect'](http://jqueryui.com/demos/datepicker/#event -onSelect)处理函数,你需要从第一个['getDate()'](http://jqueryui.com/demos/datepicker/#method-getDate),增加一天,然后调用['setDate()第二个是'](http://jqueryui.com/demos/datepicker/#method-setDate)。 –

+0

你使用jQueryUi的DatePicker吗? –

+0

@JaredFarrish我没有听到任何回应,但显然有人照顾了。 –

回答

10

演示 - http://jsfiddle.net/ffwr2/1/

$('#date1').datepicker(); 
$('#date2').datepicker(); 

$('#date1').change(function(){ 
    var date1 = $('#date1').datepicker('getDate'); 
    var date = new Date(Date.parse(date1)); 
    date.setDate(date.getDate() + 1); 

    var newDate = date.toDateString(); 
    newDate = new Date(Date.parse(newDate)); 

    $('#date2').datepicker('setDate', newDate); 
}) 
+1

应该为'paste'和'keyup'事件添加相同的处理函数,因为'change'只会在失去焦点时触发(如果值已经改变)。 –

+0

按照@ liho1eye的评论,如果你这样做,把它放在一个函数中,并从各自的处理程序中调用它们。 –

+0

我知道这是一个古老的答案,但它为我工作。谢谢! – jvillian