Javascript 如何使用JS根据开始日期、天数和结束日期启用和自动填充日期字段?

Javascript 如何使用JS根据开始日期、天数和结束日期启用和自动填充日期字段?,javascript,html,Javascript,Html,如何根据开始日期、天数和结束日期中的输入启用和自动填充日期字段中的连续日期?我有9个日期字段(date2--date10),我想根据天数中的用户输入自动填充日期 例如:如果用户输入开始日期-2020年10月3日和天数-5,则结束日期应为-2020年10月8日。 其他9个日期字段应显示如下: day2- 04/10/2020, day3- 05/10/2020, day4- 06/10/2020, day5- 07/10/2020, day6- 08/10/2020, day7- disabled

如何根据
开始日期
天数
结束日期
中的输入启用和自动填充日期字段中的连续日期?我有9个日期字段(
date2
--
date10
),我想根据
天数中的用户输入自动填充日期

例如:如果用户输入
开始日期-2020年10月3日
天数-5
,则
结束日期
应为-2020年10月8日
。 其他9个日期字段应显示如下:

day2- 04/10/2020,
day3- 05/10/2020,
day4- 06/10/2020,
day5- 07/10/2020,
day6- 08/10/2020,
day7- disabled,
day8- disabled,
day9- disabled,
day10- disabled
Date.prototype.addDays=函数(num){
var value=这个.valueOf();
值+=86400000*num;
返回新日期(值);
}
$('n#u天')。更改(函数(){
var$datepicker=$(“#开始日期”);
变量$datepicker1=$('end#u date');
var selectedDate=$datepicker.val();
var结果=新日期(selectedDate);
var dateval=result.getDate();
var ndays=$('n#u天').val();
numdays=数量(ndays);
var expirationDate=result.addDays(numdays);
结束日期1=新日期(到期日期);
变量日=(“0”+结束日期1.getDate()).slice(-2);
变量月份=(“0”+(end_date1.getMonth()+1)).slice(-2);
var year=end_date1.getFullYear();
var newdate=年+'-'+月+'-'+日;
$datepicker1.val(newdate);
});

开始日期:
天数:
结束日期:




白天 日期 2. 3. 4. 5. 6. 7. 8. 9 10


我已经添加到您已有的函数中,用于填充结束日期字段。运行for循环,并在开始日期后继续添加一天。如果小于或等于结束日期,则填充相关日期字段。否则禁用该日期字段

<script>
Date.prototype.addDays = function (num) {
    var value = this.valueOf();
    value += 86400000 * num;
    return new Date(value);
}
$('#n_days').on("change paste keyup", function() {
    var $datepicker = $('#start_date');
    var $datepicker1 = $('#end_date');

    var selectedDate = $datepicker.val();
    var result = new Date(selectedDate);
    var dateval = result.getDate();

    var ndays = $('#n_days').val();
    numdays =  Number(ndays); console.log(numdays);

    var expirationDate = result.addDays(numdays);

     end_date1 = new Date(expirationDate);
     var newdate = chgDateFormat(end_date1);
     $datepicker1.val(newdate);

     $("input").prop("disabled", false);  // enable all previously disabled inputs

     for( i=2; i< 11; i++) {
         var nextDate = result.addDays(i-1);
         if(nextDate <= expirationDate) {
             var date1 = new Date(nextDate);
             date1 = chgDateFormat(date1);
             var $nextDate = $("#date"+i);
             $nextDate.val(date1);
         }
         else {
             // disable other date fields
             var $nextDate = $("#date"+i);
             $("#date"+i).val('');
             $("#date"+i).prop("disabled", true);
         }
     }

});

function chgDateFormat(date) {
     var day = ("0" + date.getDate()).slice(-2);
     var month = ("0" + (date.getMonth() + 1)).slice(-2);
     var year = date.getFullYear();
     var newdate = year + '-' + month + '-' + day; 
     return newdate;
}
</script>

Date.prototype.addDays=函数(num){
var value=这个.valueOf();
值+=86400000*num;
返回新日期(值);
}
$('n#n#days')。打开(“更改粘贴键控”,函数(){
var$datepicker=$(“#开始日期”);
变量$datepicker1=$('end#u date');
var selectedDate=$datepicker.val();
var结果=新日期(selectedDate);
var dateval=result.getDate();
var ndays=$('n#u天').val();
numdays=Number(ndays);console.log(numdays);
var expirationDate=result.addDays(numdays);
结束日期1=新日期(到期日期);
var newdate=chgDateFormat(结束日期1);
$datepicker1.val(newdate);
$(“输入”).prop(“禁用”,false);//启用所有以前禁用的输入
对于(i=2;i<11;i++){
var nextDate=结果添加天数(i-1);
如果(下一天)