<label for="start">Date of birth:</label> <input type="date" id="start" required="required" name="trip-start" value="2021-10-02">Como lo hago donde las únicas edades permitidas son entre 15 y 80 años al momento de llenar el formulario.
Necesitará Javascript para lograr lo que desea:
HTML:
<html> <head> <script src="./<your-external-js-file>"></script> </head> <body> <form> <label for="start">Date of birth:</label> <input type="date" id="start" required="required" name="trip-start" value="2021-10-02" /> <input type="submit" /> </form> </body> </html>Agregue esto a su archivo JS externo:
window.onload = function() { var date = new Date(); var dd = date.getDate(); var mm = date.getMonth() + 1; var yyyy = date.getFullYear(); //Add a zero if one Digit (eg: 05,09) if (dd < 10) { dd = "0" + dd; } //Add a zero if one Digit (eg: 05,09) if (mm < 10) { mm = "0" + mm; } minYear = yyyy - 80; //Calculate Minimun Age (<80) maxYear = yyyy - 18; //Calculate Maximum Age (>18) var min = minYear + "-" + mm + "-" + dd; var max = maxYear + "-" + mm + "-" + dd; document.getElementById("start").setAttribute("min", min); document.getElementById("start").setAttribute("max", max); };Al hacer esto, siempre que se cargue su documento, se ejecutará esta función, que calculará las fechas mínima (edad <80) y máxima (edad> 18) a partir de la fecha actual, de acuerdo con la fórmula aplicada y establecerá el 'min atributos ' y 'max' a nuestro campo de entrada.
$("#start").change(function(){ var userboddate = $(this).val(); var useryear= userboddate.split('-')[0] ; var currentyear ='2021'; var diff=currentyear-useryear; if(diff>=15 && diff<=80){ alert(`correct age ${diff}`); } else{ alert(`wrong age ${diff}`); $("#start").val(''); } }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form id="age"> <label for="start">Date of birth:</label> <input type="date" id="start" required="required" name="trip-start" value="2021-10-02"> <input type="submit" value="submit"> </form> <!- i hope this code help you ->