javascript - Increase the date and assign as a max in date field

Solution:

The addDays method doesn't exist. You need to use the setDate() method.

let dateInput = document.getElementById("dateInput");
dateInput.addEventListener("change", () => {
  console.log("eventWorking");
  var inputValue = dateInput.value;
  var inputDate = new Date(inputValue);
  console.log(inputDate);
  // Adding 21 days using setDate
  inputDate.setDate(inputDate.getDate() + 21);
  
  console.log(inputDate);
})
Date: <input id="dateInput" type="date" name="manufacture_one" required >

Answer

Solution:

You use the setDate method to add the desired amount of days to an existing date object and, for simplicity in outputting to the end_date field rather than simply use value you can use valueAsDate as below.

Incidentally ID attributes MUST be unique and in most cases are not really required as identification of DOM elements can be done in other ways such as querySelector. Also perhaps worth noting is that the use of inline event handlers is not considered best practise nowadays - externally registered event handlers are much cleaner '-)

document.querySelector('p.flip').addEventListener('click',function(e){
  let manufacture_date=this.parentNode.querySelector('[name="manufacture_one"]');
  let end_date=this.parentNode.querySelector('[name="end_date"]');

  if( manufacture_date.value=='' ){
    alert('Date cannot be blank');
    return false;
  }
  
  let mdate=new Date( manufacture_date.value );
  let ndate=new Date( mdate.setDate( mdate.getDate() + 21 ) );
  
  end_date.valueAsDate=ndate;
});
<form action="form_page.php" method="post">
  <div>*Task / Person: <input type="text" name="product" required /></div>
  <div>*Description: <input type="text" name="customer" required /></div>
  <div>*Date: <input type="date" name="manufacture_one" required /></div>

  <p class="flip">Click to add End Date</p>

  <div id="panel">End Date: (holidays only) <input type="date" name="end_date"></div>

  <input type="submit" />
</form>

Source