0

我有三个输入:

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

日期选择器很简单,因为:

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

第一个用于设置周数,例如 2。第二个用于设置开始日期。如何在第三个输入(只读)中输出已设置日期的结果日期加上周数?

就像我设置 2 周然后使用第一个日期选择器设置 2012-12-07 时一样,然后它将输出到第三个(只读)输入 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/

编辑:要小心,要让 Date.parse() 工作,我认为您需要将年份设置为四位数,或者将日期顺序更改为 mm/dd/yy

于 2012-12-07T21:35:51.757 回答