es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Elige una fecha válida.

Tengo un selector de fechas simple usando jquery y estoy buscando una forma de corregir automáticamente cuando el usuario edite la fecha seleccionada, por ejemplo, si el usuario selecciona esta fecha del calendario 30-11-2021 y luego si edita la fecha a 31-11-2021, quiero mantener el día correcto, que es el 30. Además, si el usuario por error agrega más de 12 al mes, el código debería mantener el mes seleccionado.

¿Es posible hacer esto?

$(document).ready(function () {
    $("#TextBox_from_date").datepicker({
        numberOfMonths: 1,
        dateFormat: 'dd-mm-yy',
        onSelect: function (selected) {
            $("#TextBox_to_date").datepicker("option", "minDate", selected)
        }
    });
});
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible lograr esto utilizando el evento “onClose” del datepicker. En este evento, puedes verificar si la fecha ingresada por el usuario es una fecha válida y, si no lo es, puedes restablecer la fecha a la fecha original seleccionada.

    Aquí tienes un ejemplo de fragmento de código:

    $(document).ready(function () {
      let selectedDate = null;
    
      $("#TextBox_from_date").datepicker({
        numberOfMonths: 1,
        dateFormat: 'dd-mm-yy',
        onSelect: function (selected) {
          $("#TextBox_to_date").datepicker("option", "minDate", selected);
          selectedDate = selected;
        },
        onClose: function (dateText, inst) {
          // comprobar si la fecha ingresada es válida
          let enteredDate = $(this).datepicker('getDate');
          if (!enteredDate) {
            // si no es válida, restablecer la fecha a la fecha original seleccionada
            $(this).datepicker('setDate', selectedDate);
          } else {
            // si es válida, actualizar la variable de fecha seleccionada
            selectedDate = $.datepicker.formatDate('dd-mm-yy', enteredDate);
          }
        }
      });
    });
    

    En este código, almacenamos la fecha original seleccionada en una variable llamada “selectedDate” en el evento “onSelect”. Luego, en el evento “onClose”, verificamos si la fecha ingresada es válida obteniendo el objeto de fecha utilizando el método “getDate”. Si la fecha no es válida, establecemos la fecha de nuevo a la fecha original seleccionada utilizando el método “setDate”. Si la fecha es válida, actualizamos la variable “selectedDate” con la fecha ingresada utilizando el método “formatDate” de jQuery UI.

Comments are closed.