Así que estoy tratando de restablecer una fecha si la fecha de entrada es hoy o en el pasado, solo me pregunto por qué no funciona date = "" ya que ya declaré la variable "fecha" anteriormente, pero descubrí que funciona si escriba document.getElementById("date").value = ""; en cambio, cuando (supongo) son lo mismo?
function validate_date() { // convert to Date objects to compare var date = document.getElementById("date").value; var date_object = new Date(date) var today = new Date(); if (date_object <= today) { alert("Date cannot be today or the past!"); // document.getElementById("date").value = ""; date = ""; //doesn't reset } } <input type="date" name="date" id="date" onblur="validate_date();">Si necesita usar el paso JS en línea en el evento a la función, tome el valor de eso. A continuación, puede restablecer el valor. De esta manera, no necesita una identificación en la entrada.
function validate_date(e) { var date = e.value; var date_object = new Date(date); var today = new Date(); if (date_object <= today) { alert("Date cannot be today or the past!"); e.value = ''; } } <input type="date" onblur="validate_date(this);">al seleccionar directamente un atributo de un elemento DOM, la variable se convierte en una entidad independiente.
Al seleccionar el elemento en su lugar, permitirá el acceso para cambiar sus atributos.
function validate_date() { var date = document.getElementById("date"); date.value = ""; } <input type="date" name="date" id="date" onblur="validate_date();">