Estoy tratando de validar la edad en el campo de entrada de fecha, si alguien tiene más de 18 años, entonces puede validar si no tiene más de 18 desde el campo será un error, ¿cómo puedo hacer eso?
Lo siguiente copia una fecha de nacimiento dada en una nueva constante b18 y la varía añadiéndole 18 años. La comparación con la fecha actual muestra si la persona tiene 18 años o no.
// const b contains birth date to be tested document.querySelector("input").addEventListener("input",function(){ const b=new Date(this.value); const b18=new Date(b.getTime()); b18.setYear(b.getFullYear()+18); // alternatively you could calculate that "critical birthdate", // 18 years ago, that makes you an adult today: const d18=new Date(); d18.setYear(d18.getFullYear()-18); console.log(new Date()>b18,d18>b); }) <input type ="date" value="2003-08-29">Puedes hacerlo:
<input id="age" type="number" /> let age = document.getElementById('age'); let minAge = 18; age.onchange = () => { if(!age.value >= minAge){ age.style.border = "1px solid red"; } else if(age.value >= minAge) { age.style.border = "1px solid green"; } }